{"record":{"id":"ad38b1113954ba56","repo":"goharbor/harbor","slug":"bad-request-ad38b1","errorCode":"BAD_REQUEST","errorMessage":"only 15 rules are allowed at most","messagePattern":"only 15 rules are allowed at most","errorType":"validation","errorClass":"BadRequestError","httpStatus":400,"severity":"error","filePath":"src/server/v2.0/handler/retention.go","lineNumber":164,"sourceCode":"}\n\nfunc (r *retentionAPI) GetRetention(ctx context.Context, params operation.GetRetentionParams) middleware.Responder {\n\tid := params.ID\n\tp, err := r.retentionCtl.GetRetention(ctx, id)\n\tif err != nil {\n\t\treturn r.SendError(ctx, err)\n\t}\n\terr = r.requireAccess(ctx, p, rbac.ActionRead)\n\tif err != nil {\n\t\treturn r.SendError(ctx, err)\n\t}\n\treturn operation.NewGetRetentionOK().WithPayload(model.NewRetentionPolicy(p).ToSwagger())\n}\n\nfunc (r *retentionAPI) CreateRetention(ctx context.Context, params operation.CreateRetentionParams) middleware.Responder {\n\tp := model.NewRetentionPolicyFromSwagger(params.Policy).Metadata\n\tif len(p.Rules) > 15 {\n\t\treturn r.SendError(ctx, errors.BadRequestError(fmt.Errorf(\"only 15 rules are allowed at most\")))\n\t}\n\tif err := r.checkRuleConflict(p); err != nil {\n\t\treturn r.SendError(ctx, errors.ConflictError(err))\n\t}\n\terr := r.requireAccess(ctx, p, rbac.ActionCreate)\n\tif err != nil {\n\t\treturn r.SendError(ctx, err)\n\t}\n\n\tswitch p.Scope.Level {\n\tcase policy.ScopeLevelProject:\n\t\tif p.Scope.Reference <= 0 {\n\t\t\treturn r.SendError(ctx, errors.BadRequestError(fmt.Errorf(\"invalid Project id %d\", p.Scope.Reference)))\n\t\t}\n\n\t\tif _, err := r.projectCtl.Get(ctx, p.Scope.Reference); err != nil {\n\t\t\tif errors.IsNotFoundErr(err) {\n\t\t\t\treturn r.SendError(ctx, errors.BadRequestError(fmt.Errorf(\"invalid Project id %d\", p.Scope.Reference)))","sourceCodeStart":146,"sourceCodeEnd":182,"githubUrl":"https://github.com/goharbor/harbor/blob/7b2fd08cc568955cca339afeefab27372840d936/src/server/v2.0/handler/retention.go#L146-L182","documentation":"Error \"only 15 rules are allowed at most\" thrown in goharbor/harbor.","triggerScenarios":"Thrown at src/server/v2.0/handler/retention.go:164 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"}