Skip to content

Flaky CI Failure: test_hmac_and_consent_preference_sync times out waiting for ConsentReceived #3749

Description

@github-actions

Flaky CI Failure: test_hmac_and_consent_preference_sync times out waiting for ConsentReceived

Workflow: Test
Failed run: https://github.com/xmtp/libxmtp/actions/runs/27215352372
Commit: c654136
Failed jobs: test-workspace / Test (Rust Workspace)

Summary

The Rust test worker::device_sync::tests::test_hmac_and_consent_preference_sync in xmtp_mls failed because it timed out waiting for the ConsentReceived metric to reach a count of 2. The worker only processed 1 consent record within the allotted timeout, causing an Expired error at crates/xmtp_mls/src/worker/device_sync/tests.rs:298. This test exercises HMAC-based device sync for consent preferences across two clients.

Error Details

2026-06-09T15:25:47.530326Z  INFO crates/xmtp_mls/src/worker/metrics.rs:39:
  [c5a7e153...] successfully waited for ConsentReceived, Err(Expired)

2026-06-09T15:25:47.530335Z ERROR crates/xmtp_mls/src/worker/metrics.rs:47:
  Timed out waiting for ConsentReceived to be >= 2. Value: 1

thread 'worker::device_sync::tests::test_hmac_and_consent_preference_sync' (50772) panicked at crates/xmtp_mls/src/worker/device_sync/tests.rs:298:15:
called `Result::unwrap()` on an `Err` value: Expired
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 635 filtered out; finished in 10.33s

Analysis

The test sets up two clients and syncs consent preferences between them using HMAC-based device sync, then asserts that ConsentReceived reaches at least 2 (one per client). Only 1 consent record arrived within the timeout — suggesting the second client's consent sync message was either delayed, dropped, or not delivered before the deadline.

This same test appeared as a flaky-but-passing test (FLAKY 2/4) in prior runs (e.g., 2026-05-18 recurrence on issue #3438), indicating it can fail on the first attempt but recover. In this run it failed hard across all retries after taking ~10s. The concurrent failure of client::tests::should_reconnect (network ConnectionReset error) in the same run suggests possible backend or network instability contributed to the consent sync message not being delivered in time.

This is a test/code boundary failure — the timeout may be too tight for CI environment variability, or the underlying consent sync delivery path has a race condition under load.


Reported by Flaky Failure Watcher

Metadata

Metadata

Labels

Type

No type

Fields

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