Coding agent documentation index Fetch the complete documentation index at: https://docs.worklittle.com/docs-agent-manifest.json Use this file to discover all available pages before exploring further.
Overview
Failure classes to handle before launch: throttling and spend, stale jobs, webhook delivery, and silent correctness.
The four failure classes
| Class | Looks like | Covered in | | --- | --- | --- | | **Throttling and budget** | 429s, 402s, a surprising invoice | [Retries and spend](/use-cases/retries-and-spend) | | **Stale or ineligible data** | Apply fails, closed roles shown | [Closed jobs and eligibility](/use-cases/closed-jobs-and-eligibility) | | **Delivery gaps** | Mirror drifts, duplicate records | [Webhooks reliability](/use-cases/webhooks-reliability) | | **Silent correctness** | Invented facts, claimed writes, wrong candidate updated | [Eval checklist](/use-cases/eval-checklist), [Grounding](/use-cases/grounding) |
The first three raise signals you can alert on. The fourth needs a QA pass.
Error shapes to handle by name
{ "error": { "code": "RATE_LIMITED", "message": "…", "documentation_url": "https://docs.worklittle.com/help/api/rate-limits-and-429" } }
Auth, permission, billing, and throttle errors include documentation_url.
| HTTP | Code | Meaning | Response | | --- | --- | --- | --- | | 400 | `BAD_REQUEST` | Bad filter or payload | Fix the request. Do not retry unchanged | | 401 | `UNAUTHORIZED` | Missing or invalid key | Alert. Do not retry | | 402 | `PAYMENT_REQUIRED` | Payment failed or monthly limit hit | Stop metered work. Fix card or limit at [**Billing**](https://worklittle.com/business/billing) | | 403 | `FORBIDDEN` | Missing scope or org role | Fix the key or membership | | 404 | `NOT_FOUND` | Unknown id, or no hosted apply | Re-resolve the id | | 409 | `CONFLICT` | Another apply start for the same job is in progress | Retry with the same `Idempotency-Key` | | 429 | `RATE_LIMITED` | Throttled | Back off, honor `Retry-After` | | 429 | `QUOTA_EXCEEDED` | Free monthly quota used | Stop. Inquire at business@worklittle.com for higher limits | | 500 | `INTERNAL_ERROR` | Upstream failure | Retry with backoff, cap attempts | | 503 | `BROWSER_CAPACITY`, `SERVICE_UNAVAILABLE` | Apply with AI browser capacity or a dependency is unavailable | Retry later with backoff |
Over MCP the same conditions arrive as JSON-RPC errors. Upstream 429 and 5xx typically surface as -32603 (retryable). -32602 is a request bug. Full tables: Errors.
Design for degradation
Cache the last good search and serve it with a staleness note. Keep free paths (tracking, board pages, ATS reads) separate from metered paths so a 402 does not take them down. Queue writes with an idempotency key so a failed stage update retries instead of being lost. Never let a failed submit look like a success. * Serve board pages from ETag and webhook-revalidated cache.
Health: GET https://api.worklittle.com/health. See Status.
Pre-launch pass
Each of these needs a defined behavior. Expected outcomes are in Eval checklist.
1. A 429 during a user-visible search. 2. A 402 halfway through a multi-step agent turn. 3. A job that closes between search and apply. 4. An Apply with AI session that stalls on a question. 5. A webhook delivered twice. 6. A webhook never delivered. 7. A model asked about a salary the posting does not include. 8. A model asked to move a candidate whose name matches two people.