Every OMP endpoint returns errors in the same JSON envelope, regardless of which provider raised them. This consistency means you can write a single error-handling path in your application and it will work across all backends.Documentation Index
Fetch the complete documentation index at: https://docs.openmem.blog/llms.txt
Use this file to discover all available pages before exploring further.
Standard error envelope
Error fields
Machine-readable error identifier. Use this field to branch your error-handling logic. Values are enumerated in the table below.
Human-readable description of what went wrong. Suitable for logging, but do not parse it programmatically — use
code instead.Broad category of the error. One of
auth, not_found, invalid, rate_limited, or provider_error.The name of the backend that raised the error, if applicable (e.g.,
postgres, mem0). May be absent for client-side validation errors caught before the provider is reached.Opaque identifier for this specific request. Include this value when reporting issues or correlating errors with server-side access logs.
Error code reference
code | HTTP status | type | Meaning |
|---|---|---|---|
unauthorized | 401 | auth | Missing or invalid API key |
scope_denied | 403 | auth | Request lacks the required scope permission |
not_found | 404 | not_found | The requested resource does not exist |
invalid_request | 400 | invalid | Malformed body or invalid query parameters |
rate_limited | 429 | rate_limited | Provider rate limit exceeded |
unsupported_capability | 400 | invalid | The requested verb is not supported by this provider |
provider_error | 502 | provider_error | The upstream provider returned an unexpected error |
payload_too_large | 413 | invalid | Request body exceeds the 1 MiB limit |