slimtoolkit/slim · critical
dockerimage.LoadPackage: missing OCI Image Manifest object f
Error message
dockerimage.LoadPackage: missing OCI Image Manifest object for image ID=%s / archive='%s' / files=%+v
What it means
dockerimage.LoadPackage validates that, for OCI-format packages, the OCI Image Manifest object was successfully loaded from the archive. A nil pkg.ManifestOCI means the archive's files did not yield the OCI manifest (index/manifest blob missing or unrecognized), so loading aborts with the image ID, archive path, and file list for diagnosis.
Source
Thrown at pkg/docker/dockerimage/dockerimage.go:1119
changeDataMatchers,
utf8Detector,
processorParams,
)
if err != nil {
log.Errorf("dockerimage.LoadPackage: error reading oci layer from archive(%s/%s) - %v", archivePath, hdr.Name, err)
return nil, err
}
layers[layerID] = layer
log.Debugf("dockerimage.LoadPackage: saved layer '%s' from archive - %s",
layerID, archivePath)
}
}
}
}
if pkg.Format == FormatOCI {
if pkg.ManifestOCI == nil {
return nil, fmt.Errorf("dockerimage.LoadPackage: missing OCI Image Manifest object for image ID=%s / archive='%s' / files=%+v",
imageID, archivePath, archiveFiles)
}
} else {
if pkg.Manifest == nil {
return nil, fmt.Errorf("dockerimage.LoadPackage: missing manifest object for image ID=%s / archive='%s' / files=%+v",
imageID, archivePath, archiveFiles)
}
}
if pkg.Config == nil {
return nil, fmt.Errorf("dockerimage.LoadPackage: missing image config object for image ID=%s / archive='%s' / files=%+v",
imageID, archivePath, archiveFiles)
}
if len(layers) == 0 {
//todo: display non-image layer metadata if there are any
//todo: save non-image layer metadata/data
log.Debugf("dockerimage.LoadPackage: no image layers in archive - %s (%+v)",View on GitHub (pinned to 81940d17fa)
Solutions
- Re-export/re-download the image archive (skopeo copy / crane pull / docker save) and verify it completes without interruption.
- Check the error's files list and the OCI index: ensure the manifest digest referenced exists as a blob in the archive.
- For multi-arch images, save a platform-specific manifest (e.g. `docker save` of a pulled single-platform image) instead of only the index.
- Confirm the package's detected format matches the archive type; force the correct format if auto-detection mislabeled it.
Example fix
// before: index-only archive missing manifest blobs $ crane manifest myapp.tar -> error: missing OCI Image Manifest // after: fetch full image with all blobs $ crane pull --platform=linux/amd64 myapp:1.2 myapp.tar
Defensive patterns
Strategy: validation
Validate before calling
// verify OCI archive completeness before LoadPackage
func ociManifestPresent(files []string, indexDigest string) bool {
for _, f := range files {
if strings.Contains(f, indexDigest) { return true }
}
return false
}
// also: skopeo inspect oci-archive:app.tar must succeed Type guard
func isOCILayout(p *dockerimage.Package) bool { return p != nil && p.Format == dockerimage.FormatOCI } Try / catch
pkg, err := dockerimage.LoadPackage(...)
if err != nil && strings.Contains(err.Error(), "missing OCI Image Manifest") {
// re-pull the archive; do not retry parsing the same file
} Prevention
- Use crane pull/skopeo copy with complete-blob verification
- For multi-arch indexes, save a single-platform manifest
- Validate archives with skopeo inspect before ingestion
When it happens
Trigger: Calling LoadPackage on an OCI-layout tar/archive whose files do not include a resolvable OCI image manifest for the given imageID — e.g. an image index pointing to a missing manifest blob, a truncated archive, or files parsed under FormatOCI that are actually docker/save format.
Common situations: Partially downloaded or truncated OCI archives (craned/skopeo copy interrupted); multi-arch image indexes saved without the child manifests; archives renamed/edited so the manifest reference no longer matches; wrong format detection forcing FormatOCI on a docker-archive.
Related errors
- dockerimage.LoadPackage: missing image config object for ima
- dockerimage.LoadPackage: missing layer (%v) for image ID - %
- dockerimage.LoadPackage: missing manifest object for image I
- dockerimage.LoadPackage: layer index mismatch - %v / %v
- dockerimage.LoadPackage: layer path mismatch - %v / %v
AI-assisted analysis of slimtoolkit/slim@81940d17fa (2026-08-31).
Data as JSON: /api/errors/39c6a61ea5857172.
Report an issue: GitHub.