Relationships
↔ sibling #3068#3092 signal_test: already-settled test fails by chance when a random UUID spells the sender name
Opened by hammz · 10/6/2026· Shipped 10/6/2026
Problem
The test 'workflowSignal: the already-settled message names no person; the receipt stays in the details' in src/libswamp/workflows/signal_test.ts is flaky.
It asserts that the already-settled error message does not contain the sender name, which the test helper sets to 'ada'. That message also carries random UUIDs: the wait id as typed, the run id and the receipt id. Every letter of 'ada' is a hex digit, so a UUID sometimes contains it and the assertion fails with no change to the code under test.
Observed
verify-build run 4c5edfa6-6634-4d36-94ee-3e027d55662a on branch issue-3068-wait-for-signal at commit 3f38abed:
workflowSignal: the already-settled message names no person; the receipt stays in the details => ./src/libswamp/workflows/signal_test.ts:649:6
error: AssertionError: Values are not equal.
- true
+ false
FAILED | 19144 passed (523 steps) | 1 failed | 34 ignored (1 step)The same test passed in the five verify-build runs before it and in every local run, which fits a failure rate of roughly 2 percent (three UUIDs, about 90 three-character windows, 1 in 4096 each).
Scope
The test was added by the wait_for_signal work (swamp-club#3068) and has never been on main. A search of the test tree for other negative substring assertions on a hex-only literal against text holding a UUID found none.
Fix
Already applied on the same branch in commit d27b5a85: the helper sends as 'tux', a name with no hex letters, so no UUID can contain it. No production code changed. This issue records the flake and its cause; it can be closed when swamp-club#3068 ships.
Convention worth keeping
When a test asserts that text does not contain a name, and the text holds random ids, pick a name that cannot occur in an id (no hex-only strings), or assert on the parts of the message with the ids removed.
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.