[NET-541] [Alert rUUC7K] uniblock_hyperliquid-mainnet_Hotblocks_Critical_Lag#480
Open
elina-chertova wants to merge 1 commit 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
rUUC7K.open-beta/root/alert/incident-agent/agent-system/data/investigations/rUUC7K/root/alert/incident-agent/agent-system/data/investigations/rUUC7K/report.htmlReviewer quick view
Scope: 1 file(s) in evm
Root cause (agent): not explicitly captured
Summary: FINAL RESPONSE — uniblock_hyperliquid-mainnet_Hotblocks_Critical_Lag
(rUUC7K)
Fix class: rca_fix
Confidence: medium
Evidence basis: code, metrics, logs
Falsification: If Uniblock shows a confirmed RPC outage at 01:40–01:55Z
UTC
2026-05-18, the spike was pure timeout — SDK fix still
latently
correct but not the cause of this alert.
Follow-up: Check Uniblock status page for that window; recover spike
block number.
Verdict: accept_with_changes
Plan stop condition: met
The execution plan stop condition was "chain-utils.ts still has
assertNotNull → SDK fix required." [evidence] Code audit confirms
assertNotNull(txByHash.get(log.transactionHash)) remains in the Hyperliquid
branch of calculateLogsBloom in open-beta SHA a6fccb11. Image 9a7fea7
(2026-05-07) postdates last chain-utils.ts change (2026-04-16) — ships the
unfixed code.
Track A — Safe action now
PR to subsquid/squid-sdk (open-beta) — patch already on disk at
fixes/proposed/evm/evm-rpc/src/chain-utils.ts:
if (this.isHyperliquidMainnet || this.isHyperliquidTestnet) {
let txByHash = new Map(transactions.map(tx => [getTxHash(tx), tx]))
logs = logs.filter(log => {
skip
}
The assertNotNull import stays — still used in the Polygon branch.
Track B — Root cause ambiguity
Two explanations fit the ~135s spike equally well:
┌──────────────────┬────────────────────────────────────┬──────────────────┐
│ Hypothesis │ Evidence for │ Against │
├──────────────────┼────────────────────────────────────┼──────────────────┤
│ assertNotNull on │ Confirmed in source; known 8LVGbY │ 11 days / 0 │
│ hidden system tx │ pattern [memory:8LVGbY] │ restarts; only │
│ │ │ one spike │
├──────────────────┼────────────────────────────────────┼──────────────────┤
│ Uniblock RPC │ --http-rpc-timeout 30000 × ~4–5 │ No provider │
│ timeout cascade │ retries = 120–150s ≈ 135s │ status data │
│ │ [evidence] │ │
└──────────────────┴────────────────────────────────────┴──────────────────┘
The SDK fix is right regardless. Alert self-resolved; pod is healthy now.
The fix eliminates the latent assertNotNull defect. tuning_confidence:
likely
Post-deploy signal: sqd_hotblocks_lag_ms ≤5s continuously for 7+ days with
no spikes and no AssertionError lines in logs.
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
FINAL RESPONSE — uniblock_hyperliquid-mainnet_Hotblocks_Critical_Lag
(rUUC7K)
Fix class: rca_fix
Confidence: medium
Evidence basis: code, metrics, logs
Falsification: If Uniblock shows a confirmed RPC outage at 01:40–01:55Z
UTC
2026-05-18, the spike was pure timeout — SDK fix still
latently
correct but not the cause of this alert.
Follow-up: Check Uniblock status page for that window; recover spike
block number.
Verdict: accept_with_changes
Plan stop condition: met
The execution plan stop condition was "chain-utils.ts still has
assertNotNull → SDK fix required." [evidence] Code audit confirms
assertNotNull(txByHash.get(log.transactionHash)) remains in the Hyperliquid
branch of calculateLogsBloom in open-beta SHA a6fccb11. Image 9a7fea7
(2026-05-07) postdates last chain-utils.ts change (2026-04-16) — ships the
unfixed code.
Track A — Safe action now
PR to subsquid/squid-sdk (open-beta) — patch already on disk at
fixes/proposed/evm/evm-rpc/src/chain-utils.ts:
skip
}
The assertNotNull import stays — still used in the Polygon branch.
Track B — Root cause ambiguity
Two explanations fit the ~135s spike equally well:
┌──────────────────┬────────────────────────────────────┬──────────────────┐
│ Hypothesis │ Evidence for │ Against │
├──────────────────┼────────────────────────────────────┼──────────────────┤
│ assertNotNull on │ Confirmed in source; known 8LVGbY │ 11 days / 0 │
│ hidden system tx │ pattern [memory:8LVGbY] │ restarts; only │
│ │ │ one spike │
├──────────────────┼────────────────────────────────────┼──────────────────┤
│ Uniblock RPC │ --http-rpc-timeout 30000 × ~4–5 │ No provider │
│ timeout cascade │ retries = 120–150s ≈ 135s │ status data │
│ │ [evidence] │ │
└──────────────────┴────────────────────────────────────┴──────────────────┘
The SDK fix is right regardless. Alert self-resolved; pod is healthy now.
The fix eliminates the latent assertNotNull defect. tuning_confidence:
likely
Post-deploy signal: sqd_hotblocks_lag_ms ≤5s continuously for 7+ days with
no spikes and no AssertionError lines in logs.
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.tsNotify
cc @tmcgroul (automation opened this PR.)