Error Catalogue

August 4, 2026 ยท View on GitHub

Error Codes

CodeHTTPgRPCRetryableDescriptionResolution
IO_READ_FAILED503UNAVAILABLEYesSegment read failedCheck disk health, permissions
IO_WRITE_FAILED503UNAVAILABLEYesSegment write failedCheck disk space, permissions
IO_FSYNC_FAILED503UNAVAILABLEYesfsync failedCheck filesystem health
SEGMENT_CORRUPT500INTERNALNoBLAKE3 hash mismatchRun corecruxctl verify-store --mode full --strict
INVALID_FRAME500INTERNALNoFrame header hash mismatchUsually auto-recovered on restart
INVALID_TOC500INTERNALNoTable of contents invalidRun verify-store --mode full
SHARD_NOT_OWNER412FAILED_PRECONDITIONYesWrong shard for this streamRe-fetch shard map, retry
EPOCH_MISMATCH412FAILED_PRECONDITIONYesShard epoch changedRetry with updated epoch
BACKPRESSURE429RESOURCE_EXHAUSTEDYesSystem under loadWait, retry with backoff
TIMEOUT504DEADLINE_EXCEEDEDYesOperation exceeded deadlineRetry, check disk latency
TOO_EARLY425FAILED_PRECONDITIONYesA mandatory waiting period has not elapsed (e.g. the escrow custodian-share release delay)Retry after the time given in the response detail; there is no override
INTERNAL500INTERNALNoUnexpected errorReport at github.com/CueCrux/Crux

MCP Tool Errors

CodeToolMessage PatternResolution
-32602Any"missing required param: X"Check tool inputSchema
-32601Any"unknown tool: X"Call tools/list to discover available tools
-32603query"index is empty"Ingest data first
-32603accept_handoff"content hash mismatch"Package was tampered โ€” reject it
-32603accept_handoff"signature verification failed"Wrong signing key or corruption

Retry Strategy

For retryable errors, use exponential backoff:

  1. Wait 100ms, retry.
  2. Wait 200ms, retry.
  3. Wait 400ms, retry.
  4. Wait 800ms, retry.
  5. Give up and surface the error.

For BACKPRESSURE (429), respect the Retry-After header if present.

Diagnostic Commands

ErrorDiagnostic
SEGMENT_CORRUPTcorecruxctl verify-store --scope all --mode full --strict
IO_READ_FAILEDcorecruxctl verify-store --scope recent
SHARD_NOT_OWNERcorecruxctl shard-map
EPOCH_MISMATCHcorecruxctl shard-map --show-epochs