kopia/kopia · critical

unable to open manifests

Error message

unable to open manifests

What it means

This error wraps any failure that occurs while constructing the manifest manager (manifest.NewManager) during repository open (openWithConfig). The manifest manager is the layer that reads/writes manifest blobs (metadata about snapshots, policies, etc.), so if it cannot be initialized, the repository cannot be opened at all and openDirect fails. The underlying cause is preserved in the wrapped error chain.

Solutions

  1. Inspect the wrapped cause (errors.Wrap chain) printed with the error to find the real failure (storage access vs decryption).
  2. Verify connectivity and credentials for the configured blob storage backend (kopia repository status, test access with the provider CLI).
  3. Confirm you are using the correct repository password/config file (kopia repository connect again if needed).
  4. Check that the Kopia client version is compatible with the repository format version (repository upgraded by a newer client).
  5. Restore from backup or run repository repair tools if repository blobs are corrupted.

Example fix

// before: opening with unreachable/unauthenticated storage
rep, err := openWithConfig(ctx, st, "repo-password")
// after: pre-check storage availability and retry transient failures
if err := st.ConnectionInfo(); err != nil { return nil, err }
rep, err := openWithConfig(ctx, backoffRetry(st), "repo-password")
Defensive patterns

Strategy: try-catch

Validate before calling

// Go: verify storage connectivity before opening
if err := blobStorage.ConnectionInfo().TestAccess(ctx); err != nil {
    return fmt.Errorf("storage unreachable: %w", err)
}

Type guard

func isOpenError(err error) bool {
    return err != nil && strings.Contains(err.Error(), "unable to open manifests")
}

Try / catch

rep, err := repo.Open(ctx, cfg, pass, opts)
if err != nil {
    if strings.Contains(err.Error(), "unable to open manifests") {
        // check storage connectivity / credentials, then retry with backoff
    }
    return err
}

Prevention

When it happens

Trigger: Calling repo.Open/openDirect on a repository whose underlying blob storage is unreachable, corrupted, or returns errors while the manifest manager initializes (e.g. manifest blob reads/encryption setup fail). Any error returned by manifest.NewManager is wrapped with this message.

Common situations: Network interruption to blob storage backend (S3, B2, SFTP) at connect time; corrupted repository blobs; wrong repository password preventing manifest decryption setup; storage credentials revoked; repository partially upgraded by a newer Kopia version.

Understand the failure class

Background: "open() failed", "failed to open file", "cannot create file" — what a file open error means and how to fix it — this error's family across 42 libraries.

Related errors


AI-assisted analysis of kopia/kopia@82495e54b5 (2026-09-07). Data as JSON: /api/errors/02d19ddcb085036a. Report an issue: GitHub.

Appendix: source

Thrown at repo/open.go:362

	scm, ferr := content.NewSharedManager(ctx, st, fmgr, cacheOpts, cmOpts, logManager, mr)
	if ferr != nil {
		return nil, errors.Wrap(ferr, "unable to create shared content manager")
	}

	cm := content.NewWriteManager(ctx, scm, content.SessionOptions{
		SessionUser: cliOpts.Username,
		SessionHost: cliOpts.Hostname,
	}, "")

	om, ferr := object.NewObjectManager(ctx, cm, fmgr.ObjectFormat(), mr)
	if ferr != nil {
		return nil, errors.Wrap(ferr, "unable to open object manager")
	}

	manifests, ferr := manifest.NewManager(ctx, cm, manifest.ManagerOptions{TimeNow: cmOpts.TimeNow}, mr)
	if ferr != nil {
		return nil, errors.Wrap(ferr, "unable to open manifests")
	}

	closer := newRefCountedCloser(
		scm.CloseShared,
		dw.Wait,
		mr.Close,
		st.Close,
	)

	dr := &directRepository{
		cmgr:  cm,
		omgr:  om,
		blobs: st,
		mmgr:  manifests,
		sm:    scm,
		immutableDirectRepositoryParameters: immutableDirectRepositoryParameters{
			cachingOptions:   *cacheOpts,
			fmgr:             fmgr,

View on GitHub (pinned to 82495e54b5)