EMTITHAL returns bilingual error envelopes for all 4xx/5xx responses. Every error carries both an Arabic and English message. There are 42 error codes.
// Example 401 response (Accept-Language: ar)
{
"error_code": "AUTH.INVALID_TOKEN",
"message_ar": "رمز الوصول غير صالح أو منتهي الصلاحية",
"message_en": "Access token is invalid or expired",
"request_id": "01J3...",
"retryable": false,
"details": null
}
| Error Code | Message |
|---|---|
AUTH.ACCOUNT_INACTIVE | Account is inactive. Please contact support |
AUTH.EMAIL_ALREADY_REGISTERED | An account with this email already exists |
AUTH.EMAIL_NOT_VERIFIED | Email address must be verified before logging in |
AUTH.INVALID_CREDENTIALS | Email or password is incorrect |
AUTH.INVALID_OTP | Invalid or expired OTP |
AUTH.INVALID_TOKEN | Access token is invalid or expired |
AUTH.MISSING_TOKEN | Authorization header with Bearer token is required |
AUTH.SESSION_EXPIRED | Your session has expired. Please log in again |
| Error Code | Message |
|---|---|
BILLING.INVOICE_NOT_FOUND | Invoice not found |
BILLING.PAYMENT_FAILED | Payment failed. Please check your payment details and try again |
BILLING.PLAN_NOT_FOUND | Requested subscription plan not found |
BILLING.SUBSCRIPTION_NOT_FOUND | No active subscription found for this account |
| Error Code | Message |
|---|---|
JOB.DOCUMENT_NOT_IN_PROJECT | One or more documents do not belong to this project |
JOB.NOT_CANCELLABLE | Job cannot be cancelled in its current state |
JOB.NOT_FOUND | Compliance job not found |
JOB.NO_ACTIVE_SUBSCRIPTION | No active subscription found for this account. Please select a plan to get started |
JOB.NO_CODES_SPECIFIED | At least one design code must be specified |
JOB.PROJECT_NOT_FOUND | Project not found or does not belong to this user |
JOB.QUOTA_EXCEEDED | Your plan's compliance-review quota or credit ceiling has been reached |
JOB.RESULT_PDF_NOT_READY | Compliance report PDF has not been generated yet |
JOB.UNKNOWN_DESIGN_CODES | Unknown design codes in request |
JOB.VERDICT_MISMATCH | Verdict status conflict |
JOB.VERDICT_NOT_FOUND | No verdict found for the specified rule in this job |
| Error Code | Message |
|---|---|
PAYLOAD_TOO_LARGE | Request body exceeds the maximum allowed size |
| Error Code | Message |
|---|---|
RATE_LIMIT.EXCEEDED | You have exceeded the request rate limit. Please retry after the specified delay |
| Error Code | Message |
|---|---|
RULE.CITATION_NOT_FOUND_IN_SOURCE | Referenced citation not found in source document |
RULE.MANIFEST_VALIDATION_ERROR | Rule manifest validation failed |
RULE.MINI_ENGINE_INCONSISTENCY | Internal processing engine inconsistency detected |
RULE.PDF_FILE_MISSING | Requested PDF file not found |
RULE.PLAUSIBILITY_VIOLATION | Rule data violates plausibility constraints |
RULE.QUEUE_ITEM_NOT_FOUND | Review queue item not found |
RULE.QUEUE_ITEM_NOT_PENDING | Review queue item is not in pending status |
| Error Code | Message |
|---|---|
SERVER.INTERNAL_ERROR | An unexpected internal error occurred. The incident has been logged |
SERVER.SERVICE_UNAVAILABLE | Service is temporarily unavailable. Please try again later |
SERVER.TEMPORAL_UNAVAILABLE | Workflow service is temporarily unavailable. Please try again later |
| Error Code | Message |
|---|---|
VALIDATION.FIELD_INVALID | Request data is invalid. Please review the indicated fields |
VALIDATION.INVALID_EMAIL | Invalid email address format |
VALIDATION.MISSING_FIELD | A required field is missing |
VALIDATION.STRING_TOO_LONG | Field value exceeds the maximum allowed length |
VALIDATION.STRING_TOO_SHORT | Field value is shorter than the minimum allowed length |
| Error Code | Message |
|---|---|
WEBHOOK.PARSE_ERROR | Webhook payload could not be parsed |
WEBHOOK.SIGNATURE_INVALID | Webhook signature verification failed |