# X_UI_SHOT_ROUTE_UNBUDGETED

## Means

a `ui.*` tool (`ui.shot`, `ui.inspect`, `ui.interact`) refused a route that declares no `budget.js`

## Typical cause

a picture of a route nobody has finished declaring is a picture of a draft — the gate refuses the same route as `X_BUDGET_UNMEASURED`, and an agent judging the picture would judge the wrong thing

## Fix

declare `budget: { js: '<n>kb' }` in the route file, then `x build --target static --json && x verify --only budgets --json`

[MCP and AI](/error-codes#mcp-and-ai)
