Skip to main content

Error Codes

All error responses include a code field with a machine-readable error code. SDKs can react programmatically to these codes.

SDK-facing codes

These are the codes most relevant to SDK integrations:

CodeStatusMessageFix
ADJ_VALIDATION_FAILED400Trace payload validation failedCheck that inputContext.prompt and outputDecision.action are present
ADJ_UNKNOWN_SCHEMA_VERSION400Unknown schema versionCheck the X-Adjudon-Version header value
ADJ_BLOCKED_BY_POLICY403Decision blocked by policyReview your active policies in the dashboard
ADJ_FLAGGED_FOR_REVIEW202Decision flagged for human reviewNot an error — trace is queued for review
ADJ_DUPLICATE_REQUEST409Duplicate requestSame idempotency key used within 24 hours — treat as success
ADJ_RATE_LIMITED429Rate limit exceededBack off and retry. Check Retry-After header
ADJ_QUOTA_EXCEEDED429Usage quota exceededUpgrade plan or wait for next billing cycle
ADJ_PAYLOAD_TOO_LARGE413Payload too largeReduce trace payload size (max 1MB)
ADJ_AGENT_NOT_FOUND404Agent not foundCheck agent ID matches an existing agent
ADJ_INVALID_API_KEY401Invalid API KeyCheck key is correct and not rotated
NO_API_KEY401API Key is missingInclude X-API-Key header
INVALID_API_KEY401Invalid API KeyCheck key is correct and not rotated
ADJ_API_KEY_AGENT_SCOPE403API key agent scope mismatchKey is scoped to a different agent

Full error code registry

Auth — JWT / Session

CodeStatusMessage
UNAUTHORIZED401Authentication required
UNAUTHORIZED_NO_USER401Not authorized, user not found
NO_TOKEN401Not authorized, no token
TOKEN_REVOKED401Session has been revoked
SESSION_REVOKED401Session has been revoked
TOKEN_VERIFICATION_FAILED401Not authorized, token failed
INVALID_TOKEN401Invalid or expired token
INVALID_TOKEN_TYPE401Invalid token type
TEMP_TOKEN_EXPIRED401Temporary token expired
INVALID_CREDENTIALS401Invalid credentials
INVALID_PASSWORD401Incorrect password
INVALID_RESET_TOKEN400Invalid or expired reset token
CONFIG_ERROR500Server configuration error

Auth — API Keys

CodeStatusMessage
NO_API_KEY401API Key is missing
INVALID_API_KEY401Invalid API Key
INVALID_API_KEY_FORMAT401Invalid API Key format
API_KEY_VERIFICATION_ERROR500Server error during API key verification
ADJ_INVALID_API_KEY401Invalid API Key
ADJ_API_KEY_AGENT_SCOPE403API key agent scope mismatch
API_KEY_AGENT_SCOPE403API key agent scope mismatch
API_KEY_READ_ONLY403API key is read-only

Auth — Organization

CodeStatusMessage
ORG_NOT_FOUND401Organization not found
ORG_ACCESS_DENIED403Not a member of this organization
MISSING_ORG_ID400organizationId is required

Auth — Permissions

CodeStatusMessage
FORBIDDEN403Forbidden
SUPER_ADMIN_REQUIRED403Super admin access required

MFA

CodeStatusMessage
INVALID_2FA_CODE401Invalid 2FA code
MFA_ALREADY_ENABLED400MFA is already enabled
MFA_NOT_ENABLED400MFA is not enabled
MFA_NOT_INITIATED400MFA not initiated

SSO / OAuth

CodeStatusMessage
OAUTH_ACCOUNT400Cannot change password for OAuth accounts
NO_OAUTH_TOKEN401No OAuth token found
INVALID_OAUTH_TOKEN401Invalid or expired OAuth token
UNSUPPORTED_PROVIDER400Unsupported SSO provider
SSO_NOT_CONFIGURED404No SSO configuration found
SSO_INIT_FAILED500Failed to initiate SSO

Auth — Password & Passkey

CodeStatusMessage
PASSWORD_REQUIRED400Password is required
PASSWORD_REUSED400Password was used recently
EXPIRED400Session expired
VERIFICATION_FAILED400Verification failed
NO_JTI400Session cannot be individually revoked

Validation

CodeStatusMessage
MALFORMED_JSON400Malformed JSON in request body
VALIDATION_ERROR400Validation failed
INVALID_INPUT400Invalid input
INVALID_IDS400Invalid IDs
INVALID_STATUS400Invalid status
INVALID_WORKSPACE_ID400Invalid workspace ID format
WORKSPACE_REQUIRED400Workspace ID is required

Trace Ingestion (ADJ_* — SDK-facing)

CodeStatusMessage
ADJ_VALIDATION_FAILED400Trace payload validation failed
ADJ_UNKNOWN_SCHEMA_VERSION400Unknown schema version
ADJ_BLOCKED_BY_POLICY403Decision blocked by policy
ADJ_FLAGGED_FOR_REVIEW202Decision flagged for human review
ADJ_DUPLICATE_REQUEST409Duplicate request
ADJ_RATE_LIMITED429Rate limit exceeded
ADJ_QUOTA_EXCEEDED429Usage quota exceeded
ADJ_PAYLOAD_TOO_LARGE413Payload too large
ADJ_AGENT_NOT_FOUND404Agent not found
ADJ_ORGANIZATION_NOT_FOUND401Organization not found for this agent

Not Found

CodeStatusMessage
NOT_FOUND404Resource not found

Conflict / Duplicate

CodeStatusMessage
ALREADY_EXISTS400Resource already exists
ALREADY_MEMBER400Already a member
DUPLICATE400Duplicate resource
DUPLICATE_DOMAIN409Domain already registered
DOMAIN_CONFLICT409Domain already configured
ORG_NAME_TAKEN400Organization name taken
NAME_TAKEN409Name already taken

Rate Limiting / Quota

CodeStatusMessage
RATE_LIMIT_EXCEEDED429Rate limit exceeded
USAGE_LIMIT_EXCEEDED429Usage limit exceeded

Feature Gate

CodeStatusMessage
UNKNOWN_FEATURE403Unknown feature
UPGRADE_REQUIRED403Plan upgrade required

Operations

CodeStatusMessage
INVALID_OPERATION400Invalid operation
TEST_FAILED400Test execution failed
SSRF_BLOCKED400Request blocked (SSRF protection)
WEBHOOK_TEST_FAILED200Webhook delivery failed

Workspace

CodeStatusMessage
WORKSPACE_ACCESS_DENIED403Workspace access denied
WORKSPACE_VALIDATION_ERROR500Workspace validation error

Server

CodeStatusMessage
INTERNAL_ERROR500Internal server error
SERVER_ERROR500Server error
REPORT_ERROR500Report generation failed
MAINTENANCE_MODE503Service temporarily unavailable