{"record":{"id":"2f31f43c3d060807","repo":"nautechsystems/nautilus_trader","slug":"rpc-ticks-do-not-match-the-complete-hypersync-topo","errorCode":null,"errorMessage":"RPC ticks do not match the complete HyperSync topology: expected {} ticks, received {}","messagePattern":"RPC ticks do not match the complete HyperSync topology: expected (.+?) ticks, received (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adapters/blockchain/src/data/core.rs","lineNumber":2132,"sourceCode":"                \"RPC positions do not match the complete HyperSync topology: expected {} positions, received {}\",\n                expected_positions.len(),\n                actual_positions.len()\n            );\n        }\n\n        let actual_ticks: AHashMap<_, _> = snapshot\n            .ticks\n            .iter()\n            .map(|tick| (tick.value, tick))\n            .collect();\n\n        if actual_ticks.len() != snapshot.ticks.len() {\n            anyhow::bail!(\"RPC snapshot contains duplicate ticks\");\n        }\n\n        let expected_tick_values = profiler.get_active_tick_values();\n        if actual_ticks.len() != expected_tick_values.len() {\n            anyhow::bail!(\n                \"RPC ticks do not match the complete HyperSync topology: expected {} ticks, received {}\",\n                expected_tick_values.len(),\n                actual_ticks.len()\n            );\n        }\n\n        for tick_value in expected_tick_values {\n            let expected_tick = profiler\n                .get_tick(tick_value)\n                .with_context(|| format!(\"missing replay tick {tick_value}\"))?;\n            let actual_tick = actual_ticks\n                .get(&tick_value)\n                .with_context(|| format!(\"RPC snapshot omitted tick {tick_value}\"))?;\n\n            if !actual_tick.initialized\n                || actual_tick.liquidity_gross == 0\n                || actual_tick.liquidity_gross != expected_tick.liquidity_gross\n                || actual_tick.liquidity_net != expected_tick.liquidity_net","sourceCodeStart":2114,"sourceCodeEnd":2150,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/blockchain/src/data/core.rs#L2114-L2150","documentation":"Topology validation in validate_rpc_snapshot_topology: the set of ticks in the RPC snapshot must exactly match the active ticks derived from HyperSync profiler data; a count mismatch means the RPC node and HyperSync disagree on the pool's tick set.","triggerScenarios":"Thrown at crates/adapters/blockchain/src/data/core.rs:2132 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Re-fetch the RPC snapshot in case of a transient node inconsistency","Verify the RPC endpoint tracks the same chain/fork as HyperSync","Re-sync HyperSync data so profiler and RPC agree"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"18893faf8b356be3320add8de2f861b0b647cf06","analyzedAt":"2026-09-08T20:49:34.690Z","contentChangedAt":"2026-09-08T20:49:34.690Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}