hashicorp/nomad · error

address must be in IP:port format: %w

Error message

address must be in IP:port format: %w

What it means

RaftPeerRequest.validateAddress could not parse the supplied peer address with netip.ParseAddrPort; the address must be an IP:port pair such as 10.0.0.1:4647.

Source

Thrown at nomad/structs/operator.go:106

	if (r.ID == "" && r.Address == "") || (r.ID != "" && r.Address != "") {
		return errors.New("either ID or Address must be set")
	}
	if r.ID != "" {
		return r.validateID()
	}
	return r.validateAddress()
}

func (r *RaftPeerRequest) validateID() error {
	if _, err := uuid.ParseUUID(string(r.ID)); err != nil {
		return fmt.Errorf("id must be a uuid: %w", err)
	}
	return nil
}

func (r *RaftPeerRequest) validateAddress() error {
	if _, err := netip.ParseAddrPort(string(r.Address)); err != nil {
		return fmt.Errorf("address must be in IP:port format: %w", err)
	}
	return nil
}

type LeadershipTransferResponse struct {
	From RaftIDAddress // Server yielding leadership
	To   RaftIDAddress // Server obtaining leadership
	Noop bool          // Was the transfer a non-operation
	Err  error         // Non-nil if there was an error while transferring leadership
}

type RaftIDAddress struct {
	Address raft.ServerAddress
	ID      raft.ServerID
}

// NewRaftIDAddress takes parameters in the order provided by raft's
// LeaderWithID func and returns a RaftIDAddress

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Provide the address in IP:port format (no scheme or hostname)
  2. Use the exact address from `nomad operator raft list-peers`
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at nomad/structs/operator.go:106 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of hashicorp/nomad@482b49bf1a (2026-09-04). Data as JSON: /api/errors/6ac617ee8907e280. Report an issue: GitHub.