Skip to content
fastbrowsefastbrowse

docs

Run statuses and exits

Every status and exit code, what complete means, and how a run reports an exhausted budget.

fastbrowse.ai·all docs·source at the pinned commit·Raw Markdown·llms.txt

Results

The exit code identifies the run status. Configuration refusals exit 1; invalid command syntax exits 2. Programs that only check zero versus nonzero continue to work.

StatusExitMeaning
complete0every information requirement is backed by a quote, and every action is confirmed on the page
unverified10it believes it finished but could not back every claim
needs_confirmation3stopped before an irreversible action; re-run with --authorize
needs_login4a sign-in wall that no --secret covers
blocked6a bot check (a CAPTCHA) that did not clear; not a sign-in, so no secret passes it
needs_input5a required value or file is missing, or an upload exceeds the configured size limit
stuck9recovery ran out without reaching a page state the run had not seen
budget_exceeded7a resource limit was reached, or a missing cost prevents enforcing the dollar cap
observation_limit11the page or required evidence cannot fit the configured prompt budget
unavailable8a model or browser provider stayed unavailable through every retry; the same run later may pass
error1a model or browser failure

A budget_exceeded JSON result includes budget.resource (steps, seconds, dollars, jev_calls or llm_calls) and budget.limit. Other results have budget: null. The embedding and MCP APIs carry the same optional object, so callers can identify the affected limit without parsing an error message.

A bot check can block a cloud browser before any task steps execute. Retry with an attached local browser or choose another source for the research. Credentials do not resolve a CAPTCHA.

If a model completion omits its cost, fastbrowse looks up the matching OpenRouter or Vercel generation receipt. If that receipt is still unavailable, a run with a dollar cap stops with budget_exceeded; this does not mean the known charges reached the cap. Supplied inputs can provide exact field text without a field-writing generation.

A browser command that remains unanswered for 120 seconds returns unavailable, even if the browser still answers health checks. Step and dollar limits do not bound total elapsed time. Set Limits(max_seconds=...) for a run deadline. When investigating a stalled run, enable trace logging and retain the last event alongside the result.