JFROG ARTIFACTORY: What to Do When Your Docker Pull Fails with a ‘500 Binary provider has no content Manifest File’ Error
If a Docker pull fails and registers a manifest error that reads:
check the following:
- In your Artifactory 7.x UI, navigate to [insert 7.x navigation here] (in versions 6.x and below, navigate to Admin > Configuration > High Availability) and verify that your IP values have been correctly configured for all of your nodes.
- Through the UI verify if the manifest.json file exists for the Docker artifact. If it’s not there, then it’s not available in Artifactory and therefore explains why your Docker pull failed. If the manifest.json file exists, try to download it from the UI.
- If you can view the manifest.json file in the UI, get its SHA-1 value by right clicking manifest.json file > General > Checksums. Then:
- verifying if its binary exists in the binary store (file system).
- if you have a sharding cluster, confirm that the binary exists in your filestore, as per the redundancy you have set.
- if the binary is missing from your filestore then it may have been deleted after your upload of that artifact, which means you’ll then want to discover why this deletion from your file system may have occurred and, thereafter, restore it.
How to Verify If a Binary Exists in a Filestore
Artifactory uniquely stores artifacts using checksum-based storage. This means that an uploaded file will, in order:
- have its SHA-1 checksum calculated
- be renamed to its checksum
- be hosted in the filestore in a directory structure made up of the first two characters of the checksum
Thus, a file whose checksum is ac3f5e56… will stored in directory ac, a file whose checksum is dfe12a4b… will be stored in directory df, and so forth. The example below shows the d4 directory, which contains two files whose individual checksums begin with (you guessed it) d4:
Published: July 8, 2019
Last updated: Apr. 23, 2021
Keywords: Docker Pull