Blockfrost returns 200 [] for account sub-endpoints (registrations, delegations, withdrawals, mirs, …) when the stake credential appears on-chain only as a governance proposal's return address. Dolos returns 404.
db-sync inserts a stake_address row for every proposal reward account, and ryo's accounts_404 check reads that table. Dolos creates no AccountState for such credentials, and the existing would-be-404 fallback (account_appears_in_pool_registrations, added for pool reward accounts and owners in #1140) does not cover proposal return accounts.
Repro on preview (live Blockfrost vs dolos at current main):
GET /accounts/stake_test1uqpk6zxqea2r70fsx45n2cufdd7qu63444t0ygm3ays778sm04k6e/registrations
blockfrost: 200 [] dolos: 404
The credential is the return address of a governance proposal and has no other on-chain activity.
Likely fix: extend the would-be-404 fallback to also scan ProposalState reward accounts — the namespace holds hundreds of rows, same cost profile as the pool fallback.
Found while live-diffing /accounts/{stake_address}/mirs (#1321) against the Blockfrost preview API: 36/37 checks matched; this was the only divergence and it reproduces on endpoints that predate that PR.
🤖 Generated with Claude Code
Effort
Low — easy mapping or reshaping of existing data, or a plain tx-body decode.
The check reuses the established pattern over existing data.
Blockfrost returns
200 []for account sub-endpoints (registrations,delegations,withdrawals,mirs, …) when the stake credential appears on-chain only as a governance proposal's return address. Dolos returns404.db-sync inserts a
stake_addressrow for every proposal reward account, and ryo'saccounts_404check reads that table. Dolos creates noAccountStatefor such credentials, and the existing would-be-404 fallback (account_appears_in_pool_registrations, added for pool reward accounts and owners in #1140) does not cover proposal return accounts.Repro on preview (live Blockfrost vs dolos at current main):
The credential is the return address of a governance proposal and has no other on-chain activity.
Likely fix: extend the would-be-404 fallback to also scan
ProposalStatereward accounts — the namespace holds hundreds of rows, same cost profile as the pool fallback.Found while live-diffing
/accounts/{stake_address}/mirs(#1321) against the Blockfrost preview API: 36/37 checks matched; this was the only divergence and it reproduces on endpoints that predate that PR.🤖 Generated with Claude Code
Effort
The check reuses the established pattern over existing data.