Elydora Docs

Error Codes

Elydora uses structured error responses with consistent error codes. All errors return the following JSON format:

{ "error": { "code": "ERROR_CODE", "message": "Human-readable description.", "request_id": "019605a3-7b2c-7d00-8000-abcdef123456" } }

All Error Codes (16)

INVALID_SIGNATURE400

The Ed25519 signature on the submitted EOR does not match the agent's registered public key. Verify that the correct private key is being used and that the canonical form is computed correctly.

UNKNOWN_AGENT404

The agent_id in the request does not match any registered agent in the organization. Register the agent first via POST /v1/agents/register.

KEY_REVOKED403

The agent's signing key has been permanently revoked. A new agent must be registered with a new key pair. This action is irreversible.

KEY_RETIRED403

The key named by agent_pubkey_kid has status retired. Sign with the agent's active key.

AGENT_FROZEN403

The agent is temporarily frozen and cannot submit operations. Contact a security_admin to unfreeze the agent.

AGENT_REVOKED403

The agent is revoked. Revocation is permanent; register a new agent with a new key pair.

TTL_EXPIRED400

The operation's issued_at timestamp plus ttl_ms has elapsed before the server received the request. Increase the ttl_ms value or reduce submission latency.

REPLAY_DETECTED400

The nonce has already been used by this agent. Each operation must include a unique nonce value.

PREV_HASH_MISMATCH400

The prev_chain_hash does not match the server's expected value for this agent's chain. Causes include a concurrent submission, a missed operation, or a client that computed prev_chain_hash incorrectly.

PAYLOAD_TOO_LARGE400

The operation payload exceeds the maximum allowed size. Reduce the payload size or store large data externally and reference it by hash.

RATE_LIMITED429

The organization has exceeded the request rate limit. Implement exponential backoff and retry after the period indicated in the Retry-After header.

INTERNAL_ERROR500

An unexpected server error occurred. The operation may or may not have been recorded; check with GET /v1/operations/:operation_id before submitting a new record.

UNAUTHORIZED401

The request is missing a valid Authorization header or the session token has expired. Sign in again via POST /api/auth/sign-in/email and issue a new API token via POST /v1/auth/token.

FORBIDDEN403

The authenticated user does not have the required role to access this endpoint. Check the RBAC documentation for the minimum required role.

NOT_FOUND404

The requested resource does not exist. Verify the ID in the URL path is correct.

VALIDATION_ERROR400 / 409

The request failed validation. Check that all required fields are present and correctly typed. Conflicting state, such as an existing email, also returns this code with HTTP 409.