ipfs/kubo · error · ErrInvalidPeerAddr
invalid peer address
Error message
invalid peer address
What it means
Sentinel error ErrInvalidPeerAddr from config bootstrap parsing: a bootstrap entry string failed to parse as a peer multiaddr (missing /p2p/ peer ID component, malformed multiaddr, or unparsable AddrInfo). The offending entry is in the Bootstrap list being parsed by ParseBootstrapPeers.
Source
Thrown at config/bootstrap_peers.go:11
package config
import (
"errors"
peer "github.com/libp2p/go-libp2p/core/peer"
ma "github.com/multiformats/go-multiaddr"
)
// ErrInvalidPeerAddr signals an address is not a valid peer address.
var ErrInvalidPeerAddr = errors.New("invalid peer address")
func (c *Config) BootstrapPeers() ([]peer.AddrInfo, error) {
return ParseBootstrapPeers(c.Bootstrap)
}
func (c *Config) SetBootstrapPeers(bps []peer.AddrInfo) {
c.Bootstrap = BootstrapPeerStrings(bps)
}
// ParseBootstrapPeers parses a bootstrap list into a list of AddrInfos.
func ParseBootstrapPeers(addrs []string) ([]peer.AddrInfo, error) {
maddrs := make([]ma.Multiaddr, len(addrs))
for i, addr := range addrs {
var err error
maddrs[i], err = ma.NewMultiaddr(addr)
if err != nil {
return nil, err
}View on GitHub (pinned to 329838acdf)
Solutions
- Fix or remove the malformed entry in the Bootstrap config list
- Replace the list with the default via 'ipfs bootstrap add --default'
- Ensure each entry is a valid multiaddr ending in /p2p/<peerID>
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at config/bootstrap_peers.go:11 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ipfs/kubo@329838acdf (2026-09-03).
Data as JSON: /api/errors/4446e468a85e223a.
Report an issue: GitHub.