ethereum/go-ethereum · error

unknown node: %+v

Error message

unknown node: %+v

What it means

Error "unknown node: %+v" thrown in ethereum/go-ethereum.

Source

Thrown at trie/sync.go:604

				}
				if exists {
					s.membatch.delNode(owner, append(inner, key[:i]...))
					log.Debug("Detected dangling node", "owner", owner, "path", append(inner, key[:i]...))
				}
			}
			lookupGauge.Inc(int64(len(key) - 1))
		}
	case *fullNode:
		for i := 0; i < 17; i++ {
			if node.Children[i] != nil {
				children = append(children, childNode{
					node: node.Children[i],
					path: append(slices.Clone(req.path), byte(i)),
				})
			}
		}
	default:
		panic(fmt.Sprintf("unknown node: %+v", node))
	}
	// Iterate over the children, and request all unknown ones
	var (
		missing = make(chan *nodeRequest, len(children))
		pending sync.WaitGroup
		batchMu sync.Mutex
	)
	for _, child := range children {
		// Notify any external watcher of a new key/value node
		if req.callback != nil {
			if node, ok := (child.node).(valueNode); ok {
				var paths [][]byte
				if len(child.path) == 2*common.HashLength {
					paths = append(paths, hexToKeybytes(child.path))
				} else if len(child.path) == 4*common.HashLength {
					paths = append(paths, hexToKeybytes(child.path[:2*common.HashLength]))
					paths = append(paths, hexToKeybytes(child.path[2*common.HashLength:]))
				}

View on GitHub (pinned to 6bb0588ad8)

Solutions

  1. 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.

Example fix

// No user fix: defensive panic over internal node kinds.
// Resync state if the underlying node data is corrupt.

When it happens

Trigger: trie.Sync children-expansion receiving a node that is neither a fullNode, shortNode, hashNode, nor valueNode.

Common situations: Corrupted trie nodes served during state/snap sync.


AI-assisted analysis of ethereum/go-ethereum@6bb0588ad8 (2026-08-15). Data as JSON: /api/errors/a3dca5f75fe35164. Report an issue: GitHub.