Skip to main content

When this happens

A specific upstream that one of the analyzers depends on is degraded or temporarily unavailable. The detail object names which analyzer failed and the upstream HTTP status (when known). Examples:
  • The internal model service is unreachable (prompt-injection classifier or ShieldGemma).
  • Google Cloud DLP, NLP, Web Risk, or Vertex AI Embeddings is in a partial outage.
The error is fail-closed: the affected analyzer raises rather than silently skipping, so your combined run never returns a false “allow” because of an upstream blip.

Example response

How to recover

  1. Read Retry-After (seconds).
  2. Sleep + jitter, then retry up to 3 times.
  3. If the third attempt still fails, escalate to the status page.
The official SDKs do this automatically. Calls fail with a ServerError (Python) / ServerError (TypeScript) only after the configured retry budget is exhausted.

Failing open vs closed

Agnes intentionally fails closed on analyzer_unavailable so production traffic does not silently skip an analyzer the policy relies on. If your application needs to fail-open during analyzer outages (a deliberate choice — most do not), catch the SDK exception and degrade gracefully:

SDK behaviour

SDKs auto-retry up to the configured retry ceiling.