Skip to content

fix(indexer): classify storage read failures - #80

Merged
randomblocker merged 1 commit into
mainfrom
agent/dead-letter-cause-diagnostics
Aug 10, 2026
Merged

fix(indexer): classify storage read failures#80
randomblocker merged 1 commit into
mainfrom
agent/dead-letter-cause-diagnostics

Conversation

@randomblocker

Copy link
Copy Markdown
Contributor

Closes #79.

What changed

  • classify storage reads as STORAGE_NOT_FOUND, STORAGE_NOT_PUBLIC, STORAGE_RPC_UNAVAILABLE, or STORAGE_INVALID_RESPONSE
  • stop retrying stable missing/private responses while retaining bounded retries for transient and malformed responses
  • expose only fixed public-safe diagnostic messages and keep upstream bodies, exceptions, URLs, and stack traces private
  • advance scan state to v8 so existing generic failures are re-derived from chain history
  • document that a Demos not-found response is operational evidence only and never authoritative DACS-5 BB-8 absence evidence

Why

The indexer collapsed every storage read failure into STORAGE_UNREADABLE. Operators could not distinguish nonexistent locators from private programs or temporary node failures, and stable conditions consumed pointless retries.

Impact

Directory operators receive actionable cause counts and per-locator guidance without weakening DACS-5 fail-closed semantics. Existing deployments replay history once to reclassify the generic rows.

Validation

  • npm run typecheck
  • 176 non-publisher tests passed
  • 2 publisher tests passed separately
  • npm run build

@randomblocker
randomblocker marked this pull request as ready for review August 10, 2026 11:28
@randomblocker
randomblocker merged commit 69b8587 into main Aug 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Split indexer storage dead letters by actionable cause

1 participant