Relationships
#3568 Data names aren't checked for portability: a name with ':' fails only at write time on Windows (os error 123)
Opened by kagarmoe · 10/16/2026
What happened
Swamp accepts a data name that the filesystem datastore can't store on Windows. The method runs, the API call succeeds, and the run then fails when swamp writes the data:
Error: The filename, directory name, or volume label syntax is incorrect. (os error 123): readdir 'C:\Users\[REDACTED]\repos\oikos\.swamp\data\@dataverket\github\e865b98a-…\kagarmoe:oikos:branches'The name came from @dataverket/github branches_list. Its safeName() turns / into :, which works on Linux and macOS. On Windows, : and < > " | ? * aren't allowed in file names, and neither are the reserved device names (CON, NUL, …) or a trailing dot or space.
Why this belongs in swamp, not only in the extension
Neither the author nor the extension's tests on Linux or macOS can see the problem. It shows up only in a Windows user's run, and only once the write is already happening. I'm filing the extension's instance separately. The class of bug can only be closed here.
Proposed
Check data names (writeResource instance names, file names) against one portable rule on every platform. Then a name like owner:repo:branches fails on the author's Linux machine, with a message that names the bad character, before any external call runs. Either:
- Reject: the safer default.
- Encode: map disallowed characters reversibly on write, so names stay readable in CEL.
Environment
- swamp 20261015.233727.0-sha.a39bdd69 on Windows 11 Pro (filesystem datastore)
@dataverket/github2026.10.05.1
Open
No activity in this phase yet.
Sign in to post a ripple.