Skip to content

Stabilize recurring expanded CI test flakes #9

Description

@DenisCarriere

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions