ARTIFACTORY: Nix Remote Repository HTTP 404 Errors with .nar.zst Compression

Products
Frog_Artifactory
Content Type
Integrations
AuthorFullName__c
Tom Arie
articleNumber
000007072
FirstPublishedDate
2026-07-19T08:50:06Z
lastModifiedDate
2026-07-19

ARTIFACTORY: Nix Remote Repository HTTP 404 Errors with .nar.zst Compression

Introduction
The upstream NixOS ecosystem recently introduced a major package compression optimization with the release of Nix channels version 25.11 and newer. To significantly improve cache-building speeds, the default compression format for NAR (Nix Archive) packages served by cache.nixos.org was upgraded from the legacy .nar.xz (XZ/LZMA) format to the modern .nar.zst (Zstandard) format.
Following this change, JFrog identified an integration gap within Artifactory Nix remote repositories. Artifactory's Nix repository handler is designed to validate incoming requests against classic archive formats like .nar.xz and .nar.bz2. Because modern 25.11+ channels point to the newer .nar.zst payloads, a routing engine validation mismatch occurs. Artifactory does not recognize the updated extension pattern and rejects the request on the server side with an HTTP 404 Not Found error before the proxying mechanism can initiate.
When encountering this scenario, development teams and automated CI/CD build systems will experience the following primary symptom:
  • Artifactory Server Log / Response: The artifactory-request.log or client-side build trace will register repeated HTTP 404 errors specifically when trying to fetch files ending with the .nar.zst extension.

Resolution
Affected Versions
  • Artifactory Versions: All JFrog Artifactory releases/versions utilizing Nix remote repositories prior to the fixed versions listed below.
  • Nix/NixOS Environment: Nix channels 25.11 and newer defaulting to zstd binary cache compression.
Note:
Existing packages previously cached inside Artifactory under the legacy .nar.xz standard continue to serve perfectly. Only requests for newly published packages leveraging the updated 25.11+ compression default will trigger this validation gap.

Permanent Solution (Recommended Path)
JFrog has officially resolved this extension verification logic gap. Upgrading Artifactory is the definitive and recommended action to eliminate this issue.
  • Artifactory Self-Managed: Fixed in version 7.146.22 and above
  • Artifactory Cloud (SaaS): Fixed in version 7.160.0 and above

Immediate Workaround
If an immediate Artifactory upgrade to the fixed versions is not feasible, you can temporarily unblock your CI/CD pipelines by pinning your Nix channels to a release utilizing legacy compression layouts.

Pin NixOS Channels to 25.05 and Older Releases
To ensure all traffic continues to route cleanly through your Artifactory remote repositories without encountering unsupported extensions, pin your Nix channels or nixpkgs inputs to a release version prior to 25.11 (such as 25.05). These channels exclusively serve pre-built binaries compressed with the fully supported .nar.xz format.
For Imperative Channel Management, downgrade or pin your system channel to a stable pre-25.11 channel state by running the following command:
nix-channel --add https://<your-artifactory-url>/artifactory/api/nix/<repo-key>/channels/nixos-25.05 nixos
nix-channel --update