{"record":{"id":"5fc3ecc39831bc18","repo":"goharbor/harbor","slug":"invalid-capabilities-in-metadata","errorCode":null,"errorMessage":"invalid capabilities in metadata","messagePattern":"invalid capabilities in metadata","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/pkg/scan/rest/v1/models.go","lineNumber":94,"sourceCode":"// can interpret a returned result.\ntype ScannerAdapterMetadata struct {\n\tScanner      *Scanner             `json:\"scanner\"`\n\tCapabilities []*ScannerCapability `json:\"capabilities\"`\n\tProperties   ScannerProperties    `json:\"properties\"`\n}\n\n// Validate validate the metadata\nfunc (md *ScannerAdapterMetadata) Validate() error {\n\t// Validate the required properties\n\tif md.Scanner == nil ||\n\t\tlen(md.Scanner.Name) == 0 ||\n\t\tlen(md.Scanner.Version) == 0 ||\n\t\tlen(md.Scanner.Vendor) == 0 {\n\t\treturn errors.New(\"invalid scanner in metadata\")\n\t}\n\n\tif len(md.Capabilities) == 0 {\n\t\treturn errors.New(\"invalid capabilities in metadata\")\n\t}\n\n\tfor _, ca := range md.Capabilities {\n\t\t// v1.MimeTypeDockerArtifact is required now\n\t\tfound := slices.Contains(ca.ConsumesMimeTypes, MimeTypeDockerArtifact)\n\t\tif !found {\n\t\t\treturn errors.Errorf(\"missing %s in consumes_mime_types\", MimeTypeDockerArtifact)\n\t\t}\n\n\t\t// either of v1.MimeTypeNativeReport OR v1.MimeTypeGenericVulnerabilityReport is required\n\t\tfound = slices.ContainsFunc(ca.ProducesMimeTypes, func(pm string) bool {\n\t\t\treturn isSupportedMimeType(pm)\n\t\t})\n\t\tif !found {\n\t\t\treturn errors.Errorf(\"missing %s or %s in produces_mime_types\", MimeTypeNativeReport, MimeTypeGenericVulnerabilityReport)\n\t\t}\n\t}\n","sourceCodeStart":76,"sourceCodeEnd":112,"githubUrl":"https://github.com/goharbor/harbor/blob/7b2fd08cc568955cca339afeefab27372840d936/src/pkg/scan/rest/v1/models.go#L76-L112","documentation":"Error \"invalid capabilities in metadata\" thrown in goharbor/harbor.","triggerScenarios":"Thrown at src/pkg/scan/rest/v1/models.go:94 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"}