# Errors and limits

Recover from rejected inputs, budgets, provider failures and pending tasks.

## Authentication and permissions

Unauthorized means the credential is missing, invalid, expired or revoked. Sign in again or configure a current scoped key. Forbidden means the account or workspace permissions do not allow the operation.

A disabled tool category can remove tools from discovery. Review the workspace Tools page and refresh the client’s tool list.

## Credits and input errors

BudgetExceeded stops an estimate above max_credits. Narrow the request or explicitly approve a larger budget. InsufficientCredits means the workspace cannot cover the reservation; review its available balance.

InvalidTarget and InvalidProvider indicate a request that does not satisfy the tool contract. Correct the input using the published schema. NoData is an unavailable result, not a measured zero.

## Rate limits and retries

RateLimited and ConcurrencyLimit ask you to reduce the request rate or simultaneous work. Respect retry_after_s when provided. Limits depend on server configuration and provider family.

ProviderUnavailable may be temporary. A timeout does not prove a provider did no work: inspect the request ID and usage before retrying. Retain the same idempotency key and arguments where supported.

## Asynchronous work

TaskPending indicates work is still running. Read the same task with get_task instead of starting another crawl or answer-engine run. TaskFailed is terminal; inspect the returned explanation and accounting metadata.

A response can be HTTP 202 while work is pending. Keep its task identifier until a final result or error is returned.

- [Tool contracts and asynchronous tasks](/docs/tools)
- [Understand credit accounting](/docs/credits)
