{"record":{"id":"6dc297cfd2d8cbef","repo":"goharbor/harbor","slug":"bad-request-6dc297","errorCode":"BAD_REQUEST","errorMessage":"cannot delete %s when %s is not empty, please clear the pattern first","messagePattern":"cannot delete (.+?) when (.+?) is not empty, please clear the pattern first","errorType":"validation","errorClass":"errors.Error","httpStatus":400,"severity":"error","filePath":"src/server/v2.0/handler/project_metadata.go","lineNumber":99,"sourceCode":"}\n\nfunc (p *projectMetadataAPI) DeleteProjectMetadata(ctx context.Context, params operation.DeleteProjectMetadataParams) middleware.Responder {\n\tprojectNameOrID := parseProjectNameOrID(params.ProjectNameOrID, params.XIsResourceName)\n\tif err := p.RequireProjectAccess(ctx, projectNameOrID, rbac.ActionDelete, rbac.ResourceMetadata); err != nil {\n\t\treturn p.SendError(ctx, err)\n\t}\n\tproject, err := p.proCtl.Get(ctx, projectNameOrID)\n\tif err != nil {\n\t\treturn p.SendError(ctx, err)\n\t}\n\tif params.MetaName == proModels.ProMetaProxyCacheFilterKind {\n\t\tif p.ctl != nil {\n\t\t\texisting, err := p.ctl.Get(ctx, project.ProjectID, proModels.ProMetaProxyCacheFilterPattern)\n\t\t\tif err != nil {\n\t\t\t\treturn p.SendError(ctx, err)\n\t\t\t}\n\t\t\tif patVal, ok := existing[proModels.ProMetaProxyCacheFilterPattern]; ok && patVal != \"\" {\n\t\t\t\treturn p.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).\n\t\t\t\t\tWithMessagef(\"cannot delete %s when %s is not empty, please clear the pattern first\",\n\t\t\t\t\t\tproModels.ProMetaProxyCacheFilterKind, proModels.ProMetaProxyCacheFilterPattern))\n\t\t\t}\n\t\t}\n\t}\n\tif err = p.ctl.Delete(ctx, project.ProjectID, params.MetaName); err != nil {\n\t\treturn p.SendError(ctx, err)\n\t}\n\treturn operation.NewDeleteProjectMetadataOK()\n}\n\nfunc (p *projectMetadataAPI) GetProjectMetadata(ctx context.Context, params operation.GetProjectMetadataParams) middleware.Responder {\n\tprojectNameOrID := parseProjectNameOrID(params.ProjectNameOrID, params.XIsResourceName)\n\tif err := p.RequireProjectAccess(ctx, projectNameOrID, rbac.ActionRead, rbac.ResourceMetadata); err != nil {\n\t\treturn p.SendError(ctx, err)\n\t}\n\tproject, err := p.proCtl.Get(ctx, projectNameOrID)\n\tif err != nil {","sourceCodeStart":81,"sourceCodeEnd":117,"githubUrl":"https://github.com/goharbor/harbor/blob/7b2fd08cc568955cca339afeefab27372840d936/src/server/v2.0/handler/project_metadata.go#L81-L117","documentation":"Error \"cannot delete %s when %s is not empty, please clear the pattern first\" thrown in goharbor/harbor.","triggerScenarios":"Thrown at src/server/v2.0/handler/project_metadata.go:99 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7b2fd08cc568955cca339afeefab27372840d936","analyzedAt":"2026-08-16T00:00:10.961Z","schemaVersion":2},"datasetVersion":"2026-08-16T03:17:38.424Z"}