{"record":{"id":"12fb3d57923f7cd3","repo":"t8y2/dbx","slug":"no-management-api-endpoint-candidates","errorCode":null,"errorMessage":"No management API endpoint candidates","messagePattern":"No management API endpoint candidates","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/rabbitmq/management.go","lineNumber":71,"sourceCode":"\t\tresult, requestError := managementRequestOnce(baseURL, connection, method, path, body)\n\t\tif requestError == nil {\n\t\t\treturn result, nil\n\t\t}\n\t\tvar statusError *managementStatusError\n\t\tif errors.As(requestError, &statusError) {\n\t\t\treturn nil, requestError\n\t\t}\n\t\tvar networkError net.Error\n\t\tif errors.As(requestError, &networkError) {\n\t\t\tlastConnectionError = requestError\n\t\t\tcontinue\n\t\t}\n\t\treturn nil, requestError\n\t}\n\tif lastConnectionError != nil {\n\t\treturn nil, lastConnectionError\n\t}\n\treturn nil, errors.New(\"No management API endpoint candidates\")\n}\n\nfunc managementRequestOnce(baseURL string, connection jsonObject, method, path string, body jsonObject) (any, error) {\n\tvar requestBody io.Reader\n\tif body != nil {\n\t\tencoded, err := json.Marshal(body)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\trequestBody = bytes.NewReader(encoded)\n\t}\n\tctx, cancel := context.WithTimeout(context.Background(), managementRequestTimeout)\n\tdefer cancel()\n\trequest, err := http.NewRequestWithContext(ctx, method, baseURL+path, requestBody)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\trequest.Header.Set(\"Authorization\", basicAuthHeader(","sourceCodeStart":53,"sourceCodeEnd":89,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/rabbitmq/management.go#L53-L89","documentation":"managementRequest tries each management API base URL candidate in turn; this error is only returned when the candidate list itself was empty — no base URL could even be attempted (as opposed to a requestError or a recorded lastConnectionError).","triggerScenarios":"managementGet/managementSend called when no management base URL candidates exist — typically because the addresses/connection config yielded no endpoints to derive management URLs from.","commonSituations":"Management calls (queue stats, consumers, purge) made with a config whose host/address fields are missing, so no http://host:15672 candidates could be built; management plugin port never configured.","solutions":["Ensure the connection config has valid 'addresses'/'host' so management base URLs can be derived","Verify the RabbitMQ management plugin is enabled and reachable on the expected port (usually 15672)","Inspect the preceding config resolution — fix the root missing-address error first"],"exampleFix":"// before\nconfig := map[string]any{} // no addresses → no management candidates\nagent.Call(\"mq_get_topic_stats\", config)\n// after\nconfig := map[string]any{\"addresses\": \"rabbit:5672\", \"management_port\": 15672}\nagent.Call(\"mq_get_topic_stats\", config)","handlingStrategy":"retry","validationCode":"if strings.TrimSpace(cfg[\"host\"]) == \"\" && strings.TrimSpace(cfg[\"addresses\"]) == \"\" {\n\treturn errors.New(\"no endpoints; management API candidates cannot be built\")\n}","typeGuard":null,"tryCatchPattern":"_, err := agent.Call(\"mq_get_topic_stats\", params)\nif err != nil && strings.Contains(err.Error(), \"No management API endpoint candidates\") {\n\t// fix config, then retry the management call\n\tif _, cerr := agent.Call(\"mq_connect\", fixedCfg); cerr == nil {\n\t\t_, err = agent.Call(\"mq_get_topic_stats\", params)\n\t}\n}","preventionTips":["Ensure management plugin is enabled (rabbitmq-plugins enable rabbitmq_management)","Provide host/address config before any management call","Verify port 15672 reachability in deployment checks"],"tags":["rabbitmq","management-api","configuration"],"backgroundTag":"missing-endpoint","analyzedSha":"c0390bff16418b651f4728520d99adf8ce48829a","analyzedAt":"2026-09-05T23:05:10.900Z","contentChangedAt":"2026-09-05T23:05:10.900Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}