nats-io/nats-server · error
Evicted peers %+v, cluster size is now %d
Error message
Evicted peers %+v, cluster size is now %d
What it means
Informational membership event: after a peer-state change, peers absent from the advertised peer list (and not self, and not emptying the group) were evicted via removePeer — marked so they cannot rejoin automatically, with cluster size and quorum adjusted. The new cluster size is logged.
Source
Thrown at server/raft.go:1222
(slices.Contains(peers, n.membChange.peer) || n.pendingSelfRemoval()) {
n.revertMembershipChange()
}
var evicted []string
for _, peer := range peers {
// Never evict ourselves, and never empty out the group.
if peer == n.id || len(n.peers) <= 1 {
continue
}
if _, ok := n.peers[peer]; !ok {
continue
}
// Marks the peer as removed so it can not rejoin or be re-added
// automatically, adjusts cluster size and quorum, and persists.
n.removePeer(peer)
evicted = append(evicted, peer)
}
if len(evicted) > 0 {
n.warn("Evicted peers %+v, cluster size is now %d", evicted, n.csz)
}
return evicted, nil
}
func (n *raft) MembershipChangeInProgress() bool {
n.RLock()
defer n.RUnlock()
return n.membChange != nil
}
// pendingSelfRemoval reports whether we have an uncommitted removal of ourselves.
// We're speculatively dropped from our own peer set at append time, but the meta
// layer can still consider us a member until the removal commits.
// Lock should be held.
func (n *raft) pendingSelfRemoval() bool {
// A removal tracks the previous membership state, an addition does not.
return n.membChange != nil && n.membChange.peer == n.id && n.membChange.prev != nil
}View on GitHub (pinned to 3a66a489d2)
Solutions
- Verify the eviction was expected (e.g. planned peer removal)
- Re-add an evicted peer explicitly if it was unintentional
- Check cluster size remains adequate for quorum after evictions
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/raft.go:1222 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of nats-io/nats-server@3a66a489d2 (2026-09-02).
Data as JSON: /api/errors/7fb507df6e9759f0.
Report an issue: GitHub.