{"record":{"id":"fb3597da7907afdb","repo":"t8y2/dbx","slug":"no-rocketmq-broker-address-found","errorCode":null,"errorMessage":"no RocketMQ broker address found","messagePattern":"no RocketMQ broker address found","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/rocketmq/connection.go","lineNumber":287,"sourceCode":"func resolveBrokerAddr(info *admin.ClusterInfo, config connectionConfig, proxies *proxyManager) (string, error) {\n\tif config.BrokerAddr != \"\" {\n\t\tif local := proxies.LocalForOriginal(config.BrokerAddr); local != \"\" {\n\t\t\treturn local, nil\n\t\t}\n\t\treturn proxies.ProxyFor(config.BrokerAddr, proxyTargetBroker)\n\t}\n\tfor _, brokerName := range sortedKeys(info.BrokerAddrTable) {\n\t\tbroker := info.BrokerAddrTable[brokerName]\n\t\tif address := broker.BrokerAddrs[\"0\"]; address != \"\" {\n\t\t\treturn address, nil\n\t\t}\n\t\tfor _, brokerID := range sortedKeys(broker.BrokerAddrs) {\n\t\t\tif broker.BrokerAddrs[brokerID] != \"\" {\n\t\t\t\treturn broker.BrokerAddrs[brokerID], nil\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\", fmt.Errorf(\"no RocketMQ broker address found\")\n}\n\nfunc minDuration(left, right time.Duration) time.Duration {\n\tif left <= 0 || left > right {\n\t\treturn right\n\t}\n\treturn left\n}\n","sourceCodeStart":269,"sourceCodeEnd":296,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/rocketmq/connection.go#L269-L296","documentation":"resolveBrokerAddr walks the cluster info's broker address maps looking for any non-empty broker address; when none exists it returns this error. The client cannot route operations without a broker endpoint.","triggerScenarios":"connect or clusterTestResult runs against cluster info where every broker's BrokerAddrs map is empty or all values are empty strings.","commonSituations":"Brokers registered with the name server but reporting no addresses (misconfigured brokerIP); cluster with only replicas down; stale name-server metadata after broker shutdown.","solutions":["Ensure brokers are running and their brokerIP1/bind address is correctly configured so they register real addresses","Restart brokers so they re-register with the name servers and retry","Check connectivity/firewall between the client and broker ports"],"exampleFix":"# before: broker.properties missing address\n# brokerIP1=\n# after\nbrokerIP1=10.0.0.5","handlingStrategy":"retry","validationCode":"info, err := adminClient.FetchClusterInfo()\nif err != nil { return err }\nfor _, b := range info.BrokerAddrTable {\n    if len(b.BrokerAddrs) > 0 { return nil } // at least one usable address\n}\nreturn errors.New(\"cluster has no broker addresses; check brokerIP1 config\")","typeGuard":null,"tryCatchPattern":"addr, err := resolveBrokerAddr(ctx, info)\nif err != nil {\n    log.Warn(\"no broker addr, refreshing cluster info\")\n    info, err = refreshClusterInfo(ctx)\n    if err == nil { addr, err = resolveBrokerAddr(ctx, info) }\n}","preventionTips":["Set brokerIP1/brokerIP2 in broker.properties to reachable addresses","Monitor broker registration with the name server","Ensure brokers are started before clients connect"],"tags":["broker","topology","network"],"backgroundTag":"no-broker-available","analyzedSha":"c0390bff16418b651f4728520d99adf8ce48829a","analyzedAt":"2026-09-05T23:05:10.900Z","contentChangedAt":"2026-09-05T23:05:10.900Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}