{"record":{"id":"d31714e3b61c10d7","repo":"goharbor/harbor","slug":"bad-request-d31714","errorCode":"BAD_REQUEST","errorMessage":"invalid semicolon separator in query","messagePattern":"invalid semicolon separator in query","errorType":"validation","errorClass":"*errors.Error","httpStatus":400,"severity":"error","filePath":"src/server/middleware/url/parse.go","lineNumber":32,"sourceCode":"\npackage url // nolint:revive\n\nimport (\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"github.com/goharbor/harbor/src/lib/errors\"\n\tlib_http \"github.com/goharbor/harbor/src/lib/http\"\n\t\"github.com/goharbor/harbor/src/server/middleware\"\n)\n\n// Middleware middleware which validates the raw query, especially for the invalid semicolon separator.\nfunc Middleware(skippers ...middleware.Skipper) func(http.Handler) http.Handler {\n\treturn middleware.New(func(w http.ResponseWriter, r *http.Request, next http.Handler) {\n\t\tif r.URL != nil && r.URL.RawQuery != \"\" {\n\t\t\t_, err := url.ParseQuery(r.URL.RawQuery)\n\t\t\tif err != nil {\n\t\t\t\tlib_http.SendError(w, errors.New(err).WithCode(errors.BadRequestCode))\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tnext.ServeHTTP(w, r)\n\t}, skippers...)\n}\n","sourceCodeStart":14,"sourceCodeEnd":39,"githubUrl":"https://github.com/goharbor/harbor/blob/7b2fd08cc568955cca339afeefab27372840d936/src/server/middleware/url/parse.go#L14-L39","documentation":"Error \"invalid semicolon separator in query\" thrown in goharbor/harbor.","triggerScenarios":"Thrown at src/server/middleware/url/parse.go:32 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"}