Operations

Troubleshooting

Common failure modes and practical fixes. No mystery theater.

401

Unauthorized

>

If using dashboard UI, sign in again to refresh the HTTP-only dashboard session cookie.

>

In exchange mode, verify ORBIT_DASHBOARD_ORBIT_JWT_SECRET matches the Orbit API JWT verifier secret.

>

If using OIDC mode, verify ORBIT_DASHBOARD_OIDC_* settings and callback URL are correct.

>

If using static mode, verify ORBIT_DASHBOARD_SERVER_BEARER_TOKEN is valid for /v1/dashboard/keys endpoints.

>

Check ORBIT_DASHBOARD_AUTH_MODE and ORBIT_DASHBOARD_SESSION_SECRET are set on the frontend server.

>

If calling Orbit API directly, verify Bearer token is a valid JWT signed with ORBIT_JWT_SECRET.

>

Confirm token includes sub, iat, exp, iss, and aud claims.

>

Check iss and aud values match ORBIT_JWT_ISSUER and ORBIT_JWT_AUDIENCE.

>

Check expiration and server clock skew.

429

Rate Limit Exceeded

>

Read Retry-After before retrying.

>

Enable SDK retries with exponential backoff.

>

Tune call volume or adjust configured limits.

409

Idempotency Conflict

>

Same Idempotency-Key was reused with a different payload.

>

Use a unique key per unique request body.

Timeout Errors

>

Verify API health via GET /v1/health.

>

Increase timeout_seconds in SDK config.

>

Check network path, especially when running through local tunnels or proxies.

Empty Retrieval Results

>

Confirm ingest responses return stored=True.

>

Ensure entity_id is consistent between ingest and retrieve.

>

Use concrete queries instead of broad prompts.

>

Validate event taxonomy consistency.

No Personalization Signal

>

Check MDE_ENABLE_ADAPTIVE_PERSONALIZATION=true.

>

Use a stable entity_id for repeated-user interactions.

>

Generate enough repeated signals for threshold crossing.

>

Send enough feedback events for preference inference.

Noisy Top Results

>

Record negative feedback for unhelpful memories.

>

Audit long assistant outputs that may crowd concise profile facts.

>

Review inference provenance metadata to understand ranking behavior.

Developer validation checklist

Run quality gates before release:

python -m ruff check src tests examples scripts
python -m mypy src
python -m pytest -q
python -m pylint src tests scripts --fail-under=9.0