{"record":{"id":"9d66893b860d07eb","repo":"jaegertracing/jaeger","slug":"cannot-initialize-admin-server-w","errorCode":null,"errorMessage":"cannot initialize admin server: %w","messagePattern":"cannot initialize admin server: %w","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/internal/flags/service.go","lineNumber":90,"sourceCode":"\tif err != nil {\n\t\treturn fmt.Errorf(\"cannot create logger: %w\", err)\n\t}\n\ts.Logger = logger\n\tgrpclog.SetLoggerV2(zapgrpc.NewLogger(\n\t\tlogger.WithOptions(\n\t\t\tzap.AddCallerSkip(5), // ensure the actual caller:lineNo is shown\n\t\t),\n\t))\n\n\tmetricsBuilder := new(metricsbuilder.Builder).InitFromViper(v)\n\tmetricsFactory, err := metricsBuilder.CreateMetricsFactory(\"\")\n\tif err != nil {\n\t\treturn fmt.Errorf(\"cannot create metrics factory: %w\", err)\n\t}\n\ts.MetricsFactory = metricsFactory\n\n\tif err = s.Admin.initFromViper(v, s.Logger); err != nil {\n\t\treturn fmt.Errorf(\"cannot initialize admin server: %w\", err)\n\t}\n\tif h := metricsBuilder.Handler(); h != nil {\n\t\troute := metricsBuilder.HTTPRoute\n\t\ts.Logger.Info(\"Mounting metrics handler on admin server\", zap.String(\"route\", route))\n\t\ts.Admin.Handle(route, h)\n\t}\n\n\t// Mount expvar routes on different backends\n\tif metricsBuilder.Backend != \"expvar\" {\n\t\ts.Logger.Info(\"Mounting expvar handler on admin server\", zap.String(\"route\", \"/debug/vars\"))\n\t\ts.Admin.Handle(\"/debug/vars\", expvar.Handler())\n\t}\n\n\tif err := s.Admin.Serve(); err != nil {\n\t\treturn fmt.Errorf(\"cannot start the admin server: %w\", err)\n\t}\n\n\treturn nil","sourceCodeStart":72,"sourceCodeEnd":108,"githubUrl":"https://github.com/jaegertracing/jaeger/blob/806f4447841ecdb60519f408b004a599d515f437/cmd/internal/flags/service.go#L72-L108","documentation":"This error is returned from flags.Start() when s.Admin.initFromViper(v, s.Logger) fails to configure the admin server (the health-check + metrics HTTP server on port 14269 by default). Initialization parses the admin-related viper keys (host/port, health-check settings) and prepares the HTTP mux; any failure there aborts service startup with this wrapped error.","triggerScenarios":"Calling flags.Start() where the viper config contains an invalid admin-server setting (e.g. non-numeric or out-of-range jaeger.admin.http.host-port, bad health-status values) that initFromViper rejects.","commonSituations":"Kubernetes/YAML config with a malformed `jaeger.admin.http.host-port`; port set as a string with extra characters; conflicting flags bound into viper; config produced for a different Jaeger release with a renamed admin option.","solutions":["Correct the `jaeger.admin` section of your config (valid host:port, e.g. :14269) and restart","Run with the default admin settings by removing jaeger.admin overrides from the config","Check the wrapped `%w` cause in the log to see exactly which admin option was rejected","Compare your config keys against the admin flags documented for your Jaeger version"],"exampleFix":"// before (config.yaml)\njaeger:\n  admin:\n    http:\n      host-port: \"14269abc\"\n// after\njaeger:\n  admin:\n    http:\n      host-port: \":14269\"","handlingStrategy":"validation","validationCode":"// Pre-validate admin settings before Start\nhostPort := v.GetString(\"jaeger.admin.http.host-port\")\nif hostPort != \"\" {\n    if _, _, err := net.SplitHostPort(hostPort); err != nil {\n        return fmt.Errorf(\"invalid jaeger.admin.http.host-port %q: %w\", hostPort, err)\n    }\n}","typeGuard":null,"tryCatchPattern":"if err := svc.Start(v); err != nil {\n    if strings.Contains(err.Error(), \"cannot initialize admin server\") {\n        // inspect wrapped cause via errors.Unwrap / %v for the bad admin key\n    }\n    return err\n}","preventionTips":["Keep jaeger.admin.http.host-port in host:port form (e.g. \":14269\")","Only override admin defaults when necessary","Diff your config keys against documented admin flags for your version","Validate config with a schema linter before rollout"],"tags":["config","http-server","startup"],"backgroundTag":"invalid-config-value","analyzedSha":"806f4447841ecdb60519f408b004a599d515f437","analyzedAt":"2026-09-01T02:39:22.140Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T05:18:18.240Z"}