Relationships
#3119 extension quality and push crash with IsADirectory when additionalFiles lists a directory
Opened by skunk-ape · 10/6/2026
Problem
Listing a directory in a manifest's additionalFiles crashes swamp extension quality and push with a fatal stack trace instead of a validation error.
additionalFiles:
- docs[FTL] error: IsADirectory: Is a directory (os error 21): readfile '<repo>/docs'
at computeFileContentHash (src/domain/extensions/extension_package_cache.ts:197:28)
at computeFileContentHashIfExists (src/domain/extensions/extension_package_cache.ts:210:18)
at readFileIfExists (src/domain/extensions/extension_package_cache.ts:220:16)
at appendFileGroup (src/domain/extensions/extension_package_cache.ts:188:20)
at computePackageCacheHash (src/domain/extensions/extension_package_cache.ts:111:9)The package-cache hash reads every additionalFiles entry as a file before the additionalFiles allowlist (push prepare step 6a) runs, so the allowlist never gets to report it.
Reproduce
Swamp 20261006.205552.0. In a swamp repo (CI layout: repo initialised in the extension directory), with a valid model extension:
- Add
additionalFiles: [docs]to manifest.yaml andmkdir docs && echo "# notes" > docs/notes.md. swamp extension quality manifest.yaml→ exit 1,[FTL] IsADirectorywith a stack trace.
Expected
A user-facing error naming the entry, saying additionalFiles takes files and not directories (or packaging the directory's files, if that is meant to be supported), with no stack trace. swamp extension push manifest.yaml --dry-run --yes crashes the same way (exit 1, [FTL] IsADirectory) and should give the same answer.
Found while writing UAT for swamp-club#3022 (swamp-uat#557).
Open
No activity in this phase yet.
Sign in to post a ripple.