> ## Documentation Index
> Fetch the complete documentation index at: https://darwin.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Search reliability

> Handle limits, transient failures, pagination, and stale results safely.

Search is read-only, but clients still need bounded retries and clear degraded states.

## Retry transient failures

* Respect `Retry-After` on `429` responses.
* Retry `429` and `503` with exponential backoff and jitter.
* Cap the number of retries and the maximum delay.
* Do not retry `400`, `401`, `403`, or `404` without changing the request or credential.

## Preserve request identity

Keep the query, context, filters, and limit unchanged while following `nextCursor`. Start a new pagination sequence when any of those values change.

Search results can change as capabilities publish new revisions or availability. Store the selected `capabilityId` and `capabilityRevision`, then let Act reject a stale or unavailable revision rather than silently substituting another provider.

## Design a degraded state

If Search is temporarily unavailable, keep the user's intent visible, explain that discovery did not complete, and offer a deliberate retry. Never display cached results as fresh without labeling them.

Record status code, latency, route, and Darwin's response correlation ID. Never log API keys, provider credentials, or sensitive query content by default.

See [Rate limits](/docs/overview/rate-limits) and [Errors](/docs/errors) for shared client behavior.
