{"record":{"id":"37f58d0010c65509","repo":"kopia/kopia","slug":"error-looking-for-maintenance-manifest","errorCode":null,"errorMessage":"error looking for maintenance manifest","messagePattern":"error looking for maintenance manifest","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"repo/maintenance/maintenance_params.go","lineNumber":122,"sourceCode":"\t\treturn nil, errors.Wrap(err, \"error loading manifest\")\n\t}\n\n\treturn p, nil\n}\n\n// SetParams sets the maintenance parameters.\nfunc SetParams(ctx context.Context, rep repo.RepositoryWriter, par *Params) error {\n\tif _, err := rep.ReplaceManifests(ctx, manifestLabels, par); err != nil {\n\t\treturn errors.Wrap(err, \"put manifest\")\n\t}\n\n\treturn nil\n}\n\nfunc manifestIDs(ctx context.Context, rep repo.Repository) ([]*manifest.EntryMetadata, error) {\n\tmd, err := rep.FindManifests(ctx, manifestLabels)\n\tif err != nil {\n\t\treturn nil, errors.Wrap(err, \"error looking for maintenance manifest\")\n\t}\n\n\treturn md, nil\n}\n","sourceCodeStart":104,"sourceCodeEnd":127,"githubUrl":"https://github.com/kopia/kopia/blob/82495e54b584c1ef6073c9e1be048f57f8aef078/repo/maintenance/maintenance_params.go#L104-L127","documentation":"manifestIDs lists all maintenance manifests by calling rep.FindManifests with the maintenance label set. This error wraps failure of that search, so callers cannot determine whether maintenance parameters exist. It is thrown whenever the manifest lookup query itself fails (as opposed to returning an empty result).","triggerScenarios":"Calling manifestIDs via HasParams or GetParams when rep.FindManifests fails: storage backend unreachable, listing operation rejected by the provider, or authentication failure while enumerating manifests.","commonSituations":"Network outages against object storage during manifest listing; expired cloud session; storage provider errors on list operations (rate limits, throttling); repository metadata corruption.","solutions":["Check network connectivity and credentials for the storage backend and retry","Look for provider-side throttling/rate-limit errors in errors.Cause output and apply backoff","Run repository consistency checks if listing persists in failing","Ensure the repository connection is healthy (kopia repository status) before calling HasParams/GetParams"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"if err := rep.Refresh(ctx); err != nil {\n\treturn fmt.Errorf(\"storage not reachable: %w\", err)\n}","typeGuard":null,"tryCatchPattern":"has, err := maintenance.HasParams(ctx, rep)\nif err != nil {\n\t// backoff and retry listing; listing errors are usually transient\n\ttime.Sleep(time.Second)\n\thas, err = maintenance.HasParams(ctx, rep)\n}","preventionTips":["Apply exponential backoff for manifest listing against cloud storage","Watch for provider throttling/rate limits","Validate repository connectivity before HasParams/GetParams"],"tags":["kopia","maintenance","manifest","listing"],"backgroundTag":"database-query-failed","analyzedSha":"82495e54b584c1ef6073c9e1be048f57f8aef078","analyzedAt":"2026-09-07T20:35:21.689Z","contentChangedAt":"2026-09-07T20:35:21.689Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}