M · Moved
Tells the client this node isn't the leader, so go to the leader instead (cluster only). The body is the leader's client address (host:port) as text — the address the client itself connects to, not the Raft port.
Official clients remember the address as a leader hint only when it exactly matches an address already registered in their allowlist, then close that session. They do not arbitrarily match M to or retransmit any acquire for which even one byte was sent; that acquire ends as Indeterminate. Later independent requests, and unsent requests not yet held by the writer, use the new leader connection. If no leader has been elected yet and there's no address to point to, an E no_leader is sent instead.
See Protocol (Cluster) for the full cluster behavior.
Byte notation:
opis an ASCII character, andaddris UTF-8 text (variable-length, shown asNin the structure). The trailing\nis0A.
Flow
M has no owner or key, and a single session may mix multiple acquires. During a leader-to-follower transition, requests being committed can coexist with requests rejected by the follower, so one M is not proof that a particular pending acquire was not granted. This conservative rule prevents duplicate acquires and same-owner lease extension.