{"record":{"id":"a2e1e2035377e216","repo":"crowdsecurity/crowdsec","slug":"k8s-audit-server-failed-w","errorCode":null,"errorMessage":"k8s-audit server failed: %w","messagePattern":"k8s-audit server failed: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/acquisition/modules/kubernetesaudit/run.go","lineNumber":33,"sourceCode":"\n\t\"github.com/crowdsecurity/go-cs-lib/trace\"\n\n\t\"github.com/crowdsecurity/crowdsec/pkg/metrics\"\n\t\"github.com/crowdsecurity/crowdsec/pkg/pipeline\"\n)\n\nfunc (s *Source) StreamingAcquisition(ctx context.Context, out chan pipeline.Event, t *tomb.Tomb) error {\n\ts.outChan = out\n\n\tt.Go(func() error {\n\t\tdefer trace.ReportPanic()\n\n\t\ts.logger.Infof(\"Starting k8s-audit server on %s:%d%s\", s.config.ListenAddr, s.config.ListenPort, s.config.WebhookPath)\n\n\t\tt.Go(func() error {\n\t\t\terr := s.server.ListenAndServe()\n\t\t\tif err != nil && err != http.ErrServerClosed {\n\t\t\t\treturn fmt.Errorf(\"k8s-audit server failed: %w\", err)\n\t\t\t}\n\n\t\t\treturn nil\n\t\t})\n\t\t<-t.Dying()\n\t\ts.logger.Infof(\"Stopping k8s-audit server on %s:%d%s\", s.config.ListenAddr, s.config.ListenPort, s.config.WebhookPath)\n\n\t\tif err := s.server.Shutdown(ctx); err != nil {\n\t\t\ts.logger.Errorf(\"Error shutting down k8s-audit server: %s\", err.Error())\n\t\t}\n\n\t\treturn nil\n\t})\n\n\treturn nil\n}\n\nfunc (s *Source) webhookHandler(w http.ResponseWriter, r *http.Request) {","sourceCodeStart":15,"sourceCodeEnd":51,"githubUrl":"https://github.com/crowdsecurity/crowdsec/blob/909b5157986a2b2c2163300fdaef5ed01289f7d2/pkg/acquisition/modules/kubernetesaudit/run.go#L15-L51","documentation":"StreamingAcquisition's server goroutine fails when http.ListenAndServe returns any error other than ErrServerClosed — typically the listen address/port is invalid or already in use — so the k8s audit webhook cannot start.","triggerScenarios":"Thrown at pkg/acquisition/modules/kubernetesaudit/run.go:33 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Choose a free listen_addr/listen_port in the source config","Check nothing else occupies the port (ss -ltnp)","Verify the address format and permissions on privileged ports"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"909b5157986a2b2c2163300fdaef5ed01289f7d2","analyzedAt":"2026-09-06T12:27:26.012Z","contentChangedAt":"2026-09-06T12:27:26.012Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}