{"record":{"id":"85dd4123d36ef613","repo":"nats-io/nats-server","slug":"quorum-resumed-commit-d-applied-d-wal-size-s","errorCode":null,"errorMessage":"Quorum resumed: commit %d, applied %d, WAL size %s","messagePattern":"Quorum resumed: commit (.+?), applied (.+?), WAL size (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/raft.go","lineNumber":4647,"sourceCode":"\t// incorrectly triggering this pause immediately after receiving a snapshot.\n\tapplied := max(n.applied, n.papplied)\n\tcommit := max(n.commit, n.papplied)\n\tif sub != nil && (commit > applied || n.quorumPaused) {\n\t\tdiff := commit - applied\n\t\tif n.quorumPaused {\n\t\t\tif n.overrun(diff, paeWarnThreshold, paeWarnBytes) {\n\t\t\t\tif catchingUp {\n\t\t\t\t\tn.cancelCatchup()\n\t\t\t\t}\n\t\t\t\tn.Unlock()\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Once we're sufficiently below the threshold, we continue again. We'll likely receive a snapshot\n\t\t\t// from the leader.\n\t\t\tn.quorumPaused = false\n\t\t\tvar state StreamState\n\t\t\tn.wal.FastState(&state)\n\t\t\tn.warn(\"Quorum resumed: commit %d, applied %d, WAL size %s\", commit, applied, friendlyBytes(state.Bytes))\n\t\t} else if n.overrun(diff, pauseQuorumThreshold, pauseQuorumBytes) {\n\t\t\t// It takes a while until we reach the pause threshold, but once we do we enter a \"cooldown period\".\n\t\t\tn.quorumPaused = true\n\t\t\tn.overrunCount++\n\t\t\tvar state StreamState\n\t\t\tn.wal.FastState(&state)\n\t\t\tn.warn(\"Quorum paused, falling behind: commit %d != applied %d, WAL size %s\", commit, applied, friendlyBytes(state.Bytes))\n\t\t\tif catchingUp {\n\t\t\t\tn.cancelCatchup()\n\t\t\t}\n\t\t\tn.Unlock()\n\t\t\treturn\n\t\t}\n\t}\n\n\tif ae.pterm != n.pterm || ae.pindex != n.pindex {\n\t\t// Check if this is a lower or equal index than what we were expecting.\n\t\tif ae.pindex <= n.pindex {","sourceCodeStart":4629,"sourceCodeEnd":4665,"githubUrl":"https://github.com/nats-io/nats-server/blob/3a66a489d262bf89b71a71c955c94920394532f3/server/raft.go#L4629-L4665","documentation":"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.","triggerScenarios":"Thrown at server/raft.go:4647 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3a66a489d262bf89b71a71c955c94920394532f3","analyzedAt":"2026-09-02T04:41:54.247Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}