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
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_syncinxmtp_mlsfailed because it timed out waiting for theConsentReceivedmetric to reach a count of 2. The worker only processed 1 consent record within the allotted timeout, causing anExpirederror atcrates/xmtp_mls/src/worker/device_sync/tests.rs:298. This test exercises HMAC-based device sync for consent preferences across two clients.Error Details
Analysis
The test sets up two clients and syncs consent preferences between them using HMAC-based device sync, then asserts that
ConsentReceivedreaches 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(networkConnectionReseterror) 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