Context
The all-chain master matrix exposes several nondeterministic failures that are unrelated to the Firehose implementation. They change chain type between runs and commonly pass when only failed jobs are rerun.
Recurring failures
Market history cache race
BlockScoutWeb.V2.ExchangeRateChannelTest intermittently receives an empty chart_data list after inserting 30 market-history records. This has failed in Eden, Blackfort, and the default PR matrix. The older exchange-rate channel test explicitly invalidates both MarketHistoryCache keys and asserts the cache read before broadcasting; the V2 test does not perform the same deterministic cache reset.
Background migration timing
Explorer migration tests intermittently assert before the final row is removed, leaving a count of 1 instead of 0. This has appeared on multiple chain types.
Vyper publisher mock isolation
The Vyper re-verification test intermittently receives a 400 response map and then raises String.Chars for Map. The same test has failed on different chain types.
Runner infrastructure
One Zetachain EthereumJSONRPC shard failed before tests because the GitHub runner could not pull postgres:17 after all retries.
Evidence
The RSK SIWE casing flake discovered in the same matrix was fixed separately in #7.
Suggested follow-up
- make the V2 exchange-rate test invalidate and synchronously verify MarketHistoryCache after inserts
- replace polling/timing assumptions in migration tests with an explicit completion gate
- reset Vyper HTTP mocks deterministically between tests
- continue classifying service-image pull failures as runner infrastructure and rerun only those jobs
Context
The all-chain master matrix exposes several nondeterministic failures that are unrelated to the Firehose implementation. They change chain type between runs and commonly pass when only failed jobs are rerun.
Recurring failures
Market history cache race
BlockScoutWeb.V2.ExchangeRateChannelTest intermittently receives an empty chart_data list after inserting 30 market-history records. This has failed in Eden, Blackfort, and the default PR matrix. The older exchange-rate channel test explicitly invalidates both MarketHistoryCache keys and asserts the cache read before broadcasting; the V2 test does not perform the same deterministic cache reset.
Background migration timing
Explorer migration tests intermittently assert before the final row is removed, leaving a count of 1 instead of 0. This has appeared on multiple chain types.
Vyper publisher mock isolation
The Vyper re-verification test intermittently receives a 400 response map and then raises String.Chars for Map. The same test has failed on different chain types.
Runner infrastructure
One Zetachain EthereumJSONRPC shard failed before tests because the GitHub runner could not pull postgres:17 after all retries.
Evidence
The RSK SIWE casing flake discovered in the same matrix was fixed separately in #7.
Suggested follow-up