Relationships
#3663 vary/forEach object values with no key/name/id produce data names Windows refuses
Opened by skunk-ape · 10/20/2026
Found while triaging swamp-club#3659.
A vary or forEach value that is an object with no key, name or id property becomes a data-name suffix through coerceToSuffix (src/domain/workflows/data_suffix.ts:39), which uses the value's JSON. sanitizeSuffix removes NUL, /, \ and .., but keeps the other characters Windows does not allow in file names (<>:"|?*). For example, varying over {"region":"us"} gives the data name creds-{"region":"us"}. Since swamp-club#3568 (62b6ad42), writers refuse such a name on Windows and warn on Linux and macOS (dataNamePortability, src/domain/data/data.ts:99). So a workflow that varies over such objects runs on Linux and macOS but fails on Windows with "Data name ... contains '"', which Windows does not allow in file names".
String values that contain : (an ARN, us:east) hit the same refusal.
This is a product question, not a bug in one test:
- Keep it as is: the user changes the vary value, or adds a
key/name/idto the object, and the refusal tells them to. - Or
coerceToSuffixmakes suffixes portable (for example, hashing or replacing Windows-forbidden characters, as the vault key segment does since swamp-club#3633). That renames data people already store on Linux and macOS under suffixes like these, which swamp-club#3568 chose not to do. So it needs a migration or compatibility story and a UAT item.
Needs a decision before anyone plans a fix.
Open
No activity in this phase yet.
Sign in to post a ripple.