Migrate from actions/upload-artifact@v3 and actions/download-artifact@v3 to v4; v3 was deprecated in April 2024 and stopped working for new workflows after January 30, 2025
In v4, each artifact name must be unique within a workflow run; multiple jobs cannot upload to the same artifact name (immutable artifact model) — use distinct names like build-linux, build-macos instead of a shared build
Set a custom retention period per artifact with the retention-days input: defaults to the repository or organization setting (up to 90 days for public repos, up to 400 days for private repos)
Configure default retention at repository level under Settings > Actions > General > Artifact and log retention, or at the organization level under Settings > Actions; the minimum is 1 day
Download specific artifacts by name in downstream jobs using actions/download-artifact@v4 with name: build-linux; omitting the name downloads all artifacts from the run into subdirectories named after each artifact
Delete artifacts programmatically via the REST API DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id} if storage costs are a concern on private repositories with large build outputs
Known gotchas
In v4, uploading to the same artifact name from two parallel jobs will fail with a conflict error rather than merging content — redesign workflows that relied on v3's additive upload behavior
Artifact retention is not configurable below 1 day; for ephemeral job-to-job data passing within a workflow run, prefer job outputs (needs context) or a cache key over artifacts
The default artifact retention may differ between your personal repositories and organization repositories based on the organization-level policy; check the effective setting before assuming 90 days
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp