Relationships
#2741 PulledExtensionsLock timeout names the lock file with a forward slash on Windows; Windows CI fails on main
Opened by stack72 · 9/29/2026· Shipped 9/29/2026
Description
The Windows Compatibility workflow on main has failed on every commit since the pulled-extensions lock landed (swamp-club#2709). Runs 36631831173, 36633249370, 36634874056 and 36636180979 all fail on one test:
PulledExtensionsLock.withLock: the timeout names the lock file and its holder (src/infrastructure/persistence/pulled_extensions_lock_test.ts:337)
AssertionError: Expected actual: "Another swamp process is changing this repository's pulled extensions: lock C:\Users\[REDACTED]\AppData\Local\Temp\swamp-pulled-lock-test-...\.swamp/pulled-extensions.lock held by runneradmin@runnervm99s1a (pid 9960) — timed out after 105ms. Retry once it finishes." to contain: "C:\Users\[REDACTED]\AppData\Local\Temp\swamp-pulled-lock-test-...\.swamp\pulled-extensions.lock".The lock path in the LockTimeoutError message (lockPath, passed into the builder in src/infrastructure/persistence/pulled_extensions_lock.ts around line 296) joins the swamp dir and pulled-extensions.lock with a literal forward slash, while the test's lockFilePath() uses swampPath() (@std/path join), which produces a backslash on Windows.
Steps to reproduce
Run deno test src/infrastructure/persistence/pulled_extensions_lock_test.ts on Windows.
Expected
The error names the lock file with the platform's separator (build lockPath with @std/path join, as the repo conventions require), so the message users see on Windows is a valid path and the test passes.
Found while checking the post-merge Windows run for swamp-club#2515; unrelated to that change.
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.