X_BUDGET_UNMEASURED
Means
a route declares a budget the build never measured
Typical cause
the route is absent from .x/build-stats.json, or the file was written by an earlier measurement rule than this gate's (its measuredBy is not BUILD_STATS_RULES), so its numbers are not this gate's to read. .x/ survives framework upgrades. x verify's budgets step builds when the stats are missing or stale, so inside the gate this means a static build ran and wrote no stats (apps/web/prerender.ts must call prerenderSite())
Fix
x build --target static --json && x verify --json