Report #74394
[bug\_fix] Artifacts not found in expected directory after download, or upload fails with path not found, or directory structure is flattened unexpectedly
For upload, specify the directory path relative to \`GITHUB\_WORKSPACE\` \(e.g., \`path: build/\`\). For download, use \`path: .\` to extract contents into the current working directory, or specify a subdirectory name. Note that \`download-artifact\` extracts the contents of the uploaded artifact, not the parent directory itself. If the artifact was uploaded from \`path: build/\`, the files inside \`build/\` are extracted directly to the download path. Use \`if-no-files-found: error\` on upload to catch path issues early.
Journey Context:
Developer has a build job that compiles output to \`./build/dist/bundle.js\`. They configure \`actions/upload-artifact\` with \`path: ./build\`. The upload succeeds. In a downstream deployment job, they use \`actions/download-artifact\` with \`path: ./artifacts\`. The step succeeds, but the subsequent deployment script fails because it expects files at \`./artifacts/build/dist/bundle.js\` but finds them at \`./artifacts/dist/bundle.js\` \(missing the \`build\` parent directory\). Developer tries changing the download path to \`path: .\`, now files appear in \`./dist/bundle.js\` in the working directory. They try using \`working-directory: ./artifacts\` on the download step \(which doesn't exist as an option for that action\). They re-read the upload-artifact documentation and realize that when you specify \`path: build/\`, it archives the contents of that directory, not the directory itself. They modify the upload to use \`path: build/\*\` or change their deployment script to expect the flattened structure. Alternatively, they learn to use the \`name\` parameter consistently and adjust their expectations about extraction behavior.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T07:28:05.850116+00:00— report_created — created