DSAIL Quickstarts Guides Compare REST MCP tools Errors Legal Support

BUDGET_EXCEEDED

A per-request work budget was exceeded — a compile that would grow past the compiler's bounds, the solver's time or memory running out, or an oversized single value. HTTP 413. Split the assertion or bind repeated work with let.

The request would cost more work than one call may. The budgets bound work, not size: there is no limit on a ruleset's length, its number of rules or its number of claims. The compiler's budgets refuse a compile the moment it would cross them, so a pathological ruleset costs a structured 413 rather than a tied-up worker. The solver's own budgets can only be spent: the work stops the moment one runs out, and the request gets this error rather than a partial answer.

The envelope

{"ok": false,
 "error": {"code": "BUDGET_EXCEEDED",
           "message": "unroll_product budget exceeded: limit 10000, submitted 1000000",
           "docs": "https://docs.agents.jaxon.ai/errors/budget-exceeded.md",
           "budget": "unroll_product", "limit": 10000, "actual": 1000000},
 "versions": {"...": "..."}}

budget names which limit and limit and actual say by how much.

Two budgets are the compiler's, and a small source can trip them:

Two budgets are the solver's own:

Both are set by the ruleset and the claims rather than by load, so retrying the same call is expected to fail the same way.

Two budgets bound single caller strings, which no policy needs to be long:

The fix

The budgets are not client-tunable. If a legitimately sized ruleset trips one, that is a finding worth reporting to Jaxon rather than working around.

See also: Error codes.