nats-io/nats-server · error
Quorum resumed: commit %d, applied %d, WAL size %s
Error message
Quorum resumed: commit %d, applied %d, WAL size %s
What it means
Informational, not a failure: the node was previously quorumPaused (apply queue backed up past the pause threshold) but the commit-applied gap has now dropped below the resume threshold, so proposal processing resumes, possibly via an incoming snapshot. Logged with commit, applied, and WAL size for context.
Source
Thrown at server/raft.go:4647
// incorrectly triggering this pause immediately after receiving a snapshot.
applied := max(n.applied, n.papplied)
commit := max(n.commit, n.papplied)
if sub != nil && (commit > applied || n.quorumPaused) {
diff := commit - applied
if n.quorumPaused {
if n.overrun(diff, paeWarnThreshold, paeWarnBytes) {
if catchingUp {
n.cancelCatchup()
}
n.Unlock()
return
}
// Once we're sufficiently below the threshold, we continue again. We'll likely receive a snapshot
// from the leader.
n.quorumPaused = false
var state StreamState
n.wal.FastState(&state)
n.warn("Quorum resumed: commit %d, applied %d, WAL size %s", commit, applied, friendlyBytes(state.Bytes))
} else if n.overrun(diff, pauseQuorumThreshold, pauseQuorumBytes) {
// It takes a while until we reach the pause threshold, but once we do we enter a "cooldown period".
n.quorumPaused = true
n.overrunCount++
var state StreamState
n.wal.FastState(&state)
n.warn("Quorum paused, falling behind: commit %d != applied %d, WAL size %s", commit, applied, friendlyBytes(state.Bytes))
if catchingUp {
n.cancelCatchup()
}
n.Unlock()
return
}
}
if ae.pterm != n.pterm || ae.pindex != n.pindex {
// Check if this is a lower or equal index than what we were expecting.
if ae.pindex <= n.pindex {View on GitHub (pinned to 3a66a489d2)
Solutions
- No action required; it marks recovery from a backpressure pause
- If pauses resume repeatedly, address slow apply downstream (consumers, downstream sink latency)
- Consider tuning stream limits or scaling the tier causing slow applies
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/raft.go:4647 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/85dd4123d36ef613.
Report an issue: GitHub.