Skip to content

Flaky CI: graph_type_filter_renders_when_under_budget hits default 5s timeout under load (status=0) #389

@avrabe

Description

@avrabe

Friction (recurring, hit on 3+ PRs this week: #380, #387, #388)

rivet-cli/tests/serve_integration.rs::graph_type_filter_renders_when_under_budget intermittently fails in CI (Test and Proptest-extended jobs) with:

assertion `left == right` failed: /graph?types=requirement must return 200
  left: 0
 right: 200

Root cause (verified)

The test fetched /graph?types=requirement with the default 5s fetch() read timeout. That endpoint does a BFS + layout over the dogfood corpus (~742 nodes / 1477 edges), which on a loaded CI runner can brush past 5s. fetch_with_timeout parses a timed-out/empty response's status as 0 (.unwrap_or(0)), so the timeout surfaces as status == 0 and fails the == 200 assertion. This is the same chronic flake the focus-graph tests already documented and fixed by moving to a 15s budget (see the comment block above fetch_with_timeout) — this one test was missed.

It always reproduced locally as passing and the failing subsystem (the /graph endpoint) is unrelated to whatever the PR changed, which is the classic "unrelated flake" signature.

Fix

Give this test the same generous 15s budget the other graph endpoints use (it asserts on the response, not a hard latency bound). PR incoming.

Filing for the record since it's bitten several PRs; closing via the fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions