Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.lasscyber.com/llms.txt

Use this file to discover all available pages before exploring further.

HTTP status503 Service Unavailable
Codeanalyzer_unavailable
Retry?Yes — honour Retry-After. SDKs retry automatically with backoff.

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

HTTP/1.1 503 Service Unavailable
Retry-After: 10
{
  "detail": {
    "message": "Adversarial detection upstream is temporarily unavailable",
    "code": "analyzer_unavailable",
    "analyzer": "adversarial_detection",
    "upstream_status": 502
  },
  "code": "analyzer_unavailable",
  "request_id": "5b3f6c7e-7d24-4d40-9b12-3a59c01c6e91",
  "doc_url": "https://docs.lasscyber.com/errors/analyzer_unavailable"
}

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:
from agnes import Agnes, ServerError

agnes = Agnes()
try:
    decision = agnes.analyze(prompt, policy="default-inbound")
except ServerError as e:
    if e.code == "analyzer_unavailable":
        # decide your own fallback policy here
        return your_own_default_decision()
    raise

SDK behaviour

SDKException
Pythonagnes.ServerError (with code == "analyzer_unavailable")
TypeScriptServerError (with code === "analyzer_unavailable")
SDKs auto-retry up to the configured retry ceiling.