{"record":{"id":"cd2c9c6765251884","repo":"kubernetes/kops","slug":"could-not-find-address-for-v","errorCode":null,"errorMessage":"could not find address for %v, ","messagePattern":"could not find address for (.+?), ","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/dump/dumper.go","lineNumber":301,"sourceCode":"\n\tif len(node.PrivateAddresses) > 0 {\n\t\treturn node.PrivateAddresses[0], d.dumpNode(ctx, node.PrivateAddresses[0], node.PrivateAddresses[0], true)\n\t}\n\treturn \"\", fmt.Errorf(\"no known addresses for node %s\", node.Name)\n}\n\n// defaultNodeDumpTimeout bounds the time spent connecting to and dumping a single node.\n// A healthy node dumps in well under a minute. Without this cap, an SSH operation\n// against an unreachable node blocks until the OS TCP timeout (~15 min) expires.\n// Large clusters dump multi-GB logs per node and need a higher value, configurable\n// via the --node-dump-timeout flag, because the files are dumped sequentially and a\n// single oversized log can otherwise exhaust the budget before the rest are read.\nconst defaultNodeDumpTimeout = time.Minute\n\n// DumpNode connects to a node and dumps the logs.\nfunc (d *logDumper) dumpNode(ctx context.Context, name string, ip string, useBastion bool) error {\n\tif ip == \"\" {\n\t\treturn fmt.Errorf(\"could not find address for %v, \", name)\n\t}\n\n\tklog.Infof(\"Dumping node %s\", name)\n\n\tctx, cancel := context.WithTimeout(ctx, d.nodeDumpTimeout)\n\tdefer cancel()\n\n\tn, err := d.connectToNode(ctx, name, ip, useBastion)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"connecting: %w\", err)\n\t}\n\n\t// As long as we connect to the node we will not return an error;\n\t// a failure to collect a log (or even any logs at all) is not\n\t// considered an error in dumping the node.\n\t// TODO(justinsb): clean up / rationalize\n\terrors := n.dump(ctx)\n\tfor _, e := range errors {","sourceCodeStart":283,"sourceCodeEnd":319,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/pkg/dump/dumper.go#L283-L319","documentation":"dumpNode could not determine an address to connect to for the named node: the registered Node object exposes no usable IP. (The message format has a trailing-space quirk.)","triggerScenarios":"Thrown at pkg/dump/dumper.go:301 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the Node object's status.addresses in the cluster","Verify the node is Ready and has reported its internal IP","Fall back to the cloud instance's addresses if the Node status is stale"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T07:17:12.445Z"}