t8y2/dbx · error

decode ZooKeeper session ID: %w

Error message

decode ZooKeeper session ID: %w

What it means

Returned by newProtocolZooKeeperClient when the session id (int64) of the connect response cannot be decoded — the response buffer ran out after protocol version and timeout. Indicates a truncated or malformed ZooKeeper handshake reply.

Source

Thrown at agents/drivers/hive-go/zookeeper_protocol.go:171

	request.int64(0)
	request.bytes(make([]byte, 16))
	if err := client.writeFrame(request.data()); err != nil {
		return nil, fmt.Errorf("send ZooKeeper connect request: %w", err)
	}
	response, err := client.readFrame()
	if err != nil {
		return nil, fmt.Errorf("read ZooKeeper connect response: %w", err)
	}
	decoder := newZooKeeperDecoder(response)
	if _, err := decoder.int32(); err != nil {
		return nil, fmt.Errorf("decode ZooKeeper protocol version: %w", err)
	}
	if _, err := decoder.int32(); err != nil {
		return nil, fmt.Errorf("decode ZooKeeper session timeout: %w", err)
	}
	sessionID, err := decoder.int64()
	if err != nil {
		return nil, fmt.Errorf("decode ZooKeeper session ID: %w", err)
	}
	if _, err := decoder.bytes(); err != nil {
		return nil, fmt.Errorf("decode ZooKeeper session password: %w", err)
	}
	if sessionID == 0 {
		return nil, zk.ErrSessionExpired
	}
	return client, nil
}

func zooKeeperTimeoutMillis(timeout time.Duration) int32 {
	milliseconds := timeout.Milliseconds()
	if milliseconds < 1 {
		return 1
	}
	if milliseconds > math.MaxInt32 {
		return math.MaxInt32
	}

View on GitHub (pinned to c0390bff16)

Solutions

  1. Check network integrity between agent and ZooKeeper (MTU, proxies)
  2. Confirm the endpoint speaks the ZooKeeper wire protocol
  3. Retry or fail over to another ensemble member
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at agents/drivers/hive-go/zookeeper_protocol.go:171 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05). Data as JSON: /api/errors/eced341878d858e8. Report an issue: GitHub.