MOBILE-ID · TRUSTED LTANS
Error Catalog
Diagnose operation-specific failures, distinguish HTTP errors from verification outcomes and choose recovery actions.
Operation-specific failures
| Group | HTTP | code | Recovery |
|---|---|---|---|
| Archive | 409 | ARCHIVE_KEY_CONFLICT | Reuse the original key only for an identical retry; inspect the existing result before starting a new command. |
| Evidence | 409 | EVIDENCE_NOT_READY | Poll the existing generation job; do not create a duplicate archive. |
| Verification | 422 | TRUST_CONTEXT_UNAVAILABLE | Select an authorized versioned context; INDETERMINATE is a report outcome, not a transport failure. |
Renewal | 409 | RENEW_DATA_UNAVAILABLE | Restore owner-approved access before hash-tree renewal. |
Policy | 422 | POLICY_NOT_EFFECTIVE | Select an effective permitted revision; do not rewrite the historical policy snapshot. |
| Export | 403 | EXPORT_SCOPE_DENIED | Obtain recipient and payload export authorization. |
| Transfer | 409 | TRANSFER_NOT_ACKNOWLEDGED | Keep source custody; verify manifest and recipient acknowledgement. |
Job | 404 | JOB_NOT_FOUND | Check saved jobId and tenant; never assume timeout means failure. |
Webhook | 422 | WEBHOOK_ENDPOINT_REJECTED | Use an allow-listed HTTPS receiver and complete endpoint ownership verification. |
| Audit | 403 | REPORT_SCOPE_DENIED | Restrict tenant, period and query to the granted reporting scope. |
{
"type": "https://example.invalid/problems/profile-inactive",
"title": "Inactive profile",
"code": "PROFILE_INACTIVE",
"detail": "Select an effective permitted profile.",
"correlationId": "corr-test-001",
"requestId": "req-test-001",
"retryable": false,
"service": "Policy Service",
"timestamp": "2026-10-15T05:00:01Z",
"errors": [],
"status": 422,
"instance": "urn:ltans:request:req-test-001"
}Verification outcomes versus transport failures
An INDETERMINATE report can arrive with HTTP 200: processing completed but evidence was insufficient for a conclusion. Fix authorization for 401/403, resolve 409 conflicts, and retry 429/503 only within bounds and according to Retry-After and cause.