Skip to main content
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 and Errors for shared client behavior.