[NET-526] [Alert vrjLJH] uniblock_hyperliquid-mainnet_Hotblocks_Critical_Lag#478
Open
elina-chertova wants to merge 2 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated fix proposal for alert
vrjLJH.open-beta/root/alert/incident-agent/agent-system/data/investigations/vrjLJH/root/alert/incident-agent/agent-system/data/investigations/vrjLJH/report.htmlReviewer quick view
Scope: 2 file(s) in evm
Root cause (agent): not explicitly captured
Summary: Three confirmed errors, all with proposed fixes already in fixes/proposed/:
Error A (primary root cause, SDK fix): AssertionError at
chain-utils.ts:calculateLogsBloom — same unfixed bug as human-confirmed
incident 8LVGbY. A receipt log references a system tx hash absent from
block.transactions; assertNotNull throws. Fix: null-guard before the assert.
Infra-only patches won't help (per @tmcgroul, PR [SCAM ALERT] Something goes wrong on your discord verification #408).
Error B (config fix, deploy now): debug_traceBlockByHash fails 100% during
alert window (Alchemy 429 + Dwellir -32001). Fix:
use_debug_api_for_statediffs: false in uniblock.yaml. Live probe confirms
trace_replayBlockTransactions works on uniblock/Hyperliquid — safe to deploy
immediately.
Error C (secondary SDK fix): eth_getBlockReceipts returns system receipts
(cumulativeGasUsed=0x0) not in block.transactions; count check fails after 5
retries. Fix: filter system receipts in rpc.ts before the count check.
Critic noted the filter also strips those receipts from bloom verification —
this is correct behavior for Hyperliquid, and the proposed patch already
documents it.
One change from critic: The use_debug_api_for_statediffs: false gate
(conditional on probe) is removed — the probe confirmed
trace_replayBlockTransactions works, so the config fix is unconditional.
Fix metadata
(Generated by the terminal-debate agent — values reflect the agent's self-assessment, not a verified verdict. Use them as a starting point for review.)
Summary
Three confirmed errors, all with proposed fixes already in fixes/proposed/:
Error A (primary root cause, SDK fix): AssertionError at
chain-utils.ts:calculateLogsBloom — same unfixed bug as human-confirmed
incident 8LVGbY. A receipt log references a system tx hash absent from
block.transactions; assertNotNull throws. Fix: null-guard before the assert.
Infra-only patches won't help (per @tmcgroul, PR #408).
Error B (config fix, deploy now): debug_traceBlockByHash fails 100% during
alert window (Alchemy 429 + Dwellir -32001). Fix:
use_debug_api_for_statediffs: false in uniblock.yaml. Live probe confirms
trace_replayBlockTransactions works on uniblock/Hyperliquid — safe to deploy
immediately.
Error C (secondary SDK fix): eth_getBlockReceipts returns system receipts
(cumulativeGasUsed=0x0) not in block.transactions; count check fails after 5
retries. Fix: filter system receipts in rpc.ts before the count check.
Critic noted the filter also strips those receipts from bloom verification —
this is correct behavior for Hyperliquid, and the proposed patch already
documents it.
One change from critic: The use_debug_api_for_statediffs: false gate
(conditional on probe) is removed — the probe confirmed
trace_replayBlockTransactions works, so the config fix is unconditional.
Risk & rollout
Reproduction status
Incident behavior was reproduced or corroborated strongly enough for a non-hypothesis fix proposal.
Validation checklist
Changed files
evm/evm-rpc/src/chain-utils.tsevm/evm-rpc/src/rpc.tsNotify
cc @tmcgroul (automation opened this PR.)