{"record":{"id":"ec2e7d0438513bb0","repo":"nats-io/nats-server","slug":"received-invalid-peer-name-for-remove-proposal-q","errorCode":null,"errorMessage":"Received invalid peer name for remove proposal: %q","messagePattern":"Received invalid peer name for remove proposal: %q","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/raft.go","lineNumber":3238,"sourceCode":"\tar.index = le.Uint64(msg[8:])\n\n\tpeer, ok := peers.Load(string(msg[16 : 16+idLen]))\n\tif !ok {\n\t\t// We missed so store inline here.\n\t\tpeer = string(msg[16 : 16+idLen])\n\t\tpeers.Store(peer, peer)\n\t}\n\tar.peer = peer.(string)\n\tar.success = msg[24] == 1\n\treturn ar\n}\n\n// Called when a remove peer proposal has been forwarded\nfunc (n *raft) handleForwardedRemovePeerProposal(sub *subscription, c *client, _ *Account, _, reply string, msg []byte) {\n\tn.debug(\"Received forwarded remove peer proposal: %q\", msg)\n\n\tif len(msg) != idLen {\n\t\tn.warn(\"Received invalid peer name for remove proposal: %q\", msg)\n\t\treturn\n\t}\n\n\tn.RLock()\n\t// Check state under lock, we might not be leader anymore.\n\tif n.State() != Leader || !n.leaderState.Load() {\n\t\tn.debug(\"Ignoring forwarded peer removal proposal, not leader\")\n\t\tn.RUnlock()\n\t\treturn\n\t}\n\t// Error if we had a previous write error.\n\tif werr := n.werr; werr != nil {\n\t\tn.RUnlock()\n\t\treturn\n\t}\n\tif n.membChange != nil {\n\t\tn.debug(\"Ignoring forwarded peer removal proposal, membership changing\")\n\t\tn.RUnlock()","sourceCodeStart":3220,"sourceCodeEnd":3256,"githubUrl":"https://github.com/nats-io/nats-server/blob/3a66a489d262bf89b71a71c955c94920394532f3/server/raft.go#L3220-L3256","documentation":"A forwarded remove-peer proposal arrived whose payload length != idLen, so it cannot be a valid peer name. The malformed proposal is rejected (warned) rather than being applied, protecting membership from garbage input — likely a version mismatch or a corrupted/foreign message on the subject.","triggerScenarios":"Thrown at server/raft.go:3238 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify all cluster nodes run compatible versions","Check that nothing else publishes to the internal RAFT proposals subject","Ignore one-offs; repeated occurrences indicate a real publisher bug"],"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-08T10:18:20.063Z"}