{"record":{"id":"a3dca5f75fe35164","repo":"ethereum/go-ethereum","slug":"unknown-node-v","errorCode":null,"errorMessage":"unknown node: %+v","messagePattern":"unknown node: %\\+v","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"trie/sync.go","lineNumber":604,"sourceCode":"\t\t\t\t}\n\t\t\t\tif exists {\n\t\t\t\t\ts.membatch.delNode(owner, append(inner, key[:i]...))\n\t\t\t\t\tlog.Debug(\"Detected dangling node\", \"owner\", owner, \"path\", append(inner, key[:i]...))\n\t\t\t\t}\n\t\t\t}\n\t\t\tlookupGauge.Inc(int64(len(key) - 1))\n\t\t}\n\tcase *fullNode:\n\t\tfor i := 0; i < 17; i++ {\n\t\t\tif node.Children[i] != nil {\n\t\t\t\tchildren = append(children, childNode{\n\t\t\t\t\tnode: node.Children[i],\n\t\t\t\t\tpath: append(slices.Clone(req.path), byte(i)),\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unknown node: %+v\", node))\n\t}\n\t// Iterate over the children, and request all unknown ones\n\tvar (\n\t\tmissing = make(chan *nodeRequest, len(children))\n\t\tpending sync.WaitGroup\n\t\tbatchMu sync.Mutex\n\t)\n\tfor _, child := range children {\n\t\t// Notify any external watcher of a new key/value node\n\t\tif req.callback != nil {\n\t\t\tif node, ok := (child.node).(valueNode); ok {\n\t\t\t\tvar paths [][]byte\n\t\t\t\tif len(child.path) == 2*common.HashLength {\n\t\t\t\t\tpaths = append(paths, hexToKeybytes(child.path))\n\t\t\t\t} else if len(child.path) == 4*common.HashLength {\n\t\t\t\t\tpaths = append(paths, hexToKeybytes(child.path[:2*common.HashLength]))\n\t\t\t\t\tpaths = append(paths, hexToKeybytes(child.path[2*common.HashLength:]))\n\t\t\t\t}","sourceCodeStart":586,"sourceCodeEnd":622,"githubUrl":"https://github.com/ethereum/go-ethereum/blob/6bb0588ad8e7f922e4ad5580f51265a4097af08f/trie/sync.go#L586-L622","documentation":"Error \"unknown node: %+v\" thrown in ethereum/go-ethereum.","triggerScenarios":"trie.Sync children-expansion receiving a node that is neither a fullNode, shortNode, hashNode, nor valueNode.","commonSituations":"Corrupted trie nodes served during state/snap sync.","solutions":["An unknown node type was delivered to the sync scheduler — indicates corrupted node data or an internal bug. Re-sync the state; if reproducible with clean data, report it as a bug."],"exampleFix":"// No user fix: defensive panic over internal node kinds.\n// Resync state if the underlying node data is corrupt.","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6bb0588ad8e7f922e4ad5580f51265a4097af08f","analyzedAt":"2026-08-15T10:06:53.996Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}