E · Error
The response when a request can't be processed. Instead of a key, a reason (reason) text is sent in its place — the key is never echoed back, so during pipelining you can't tell which request failed from the frame alone. Therefore every E is connection-fatal. The server flushes E when possible and closes the connection; official clients also discard that session. Every acquire for which at least one byte was sent and no definitive reply arrived ends as Indeterminate, never as assumed success or failure.
| reason | cause | connection |
|---|---|---|
auth_failed | auth handshake digest mismatch | closed |
bad_op | unknown op code | closed |
bad_request | fixed header too short (10 bytes for A, 8 for R) | closed |
bad_lease | lease is 0 or 251..255 | closed |
bad_key | key missing / exceeds 128B / contains whitespace or newline / not UTF-8 | closed |
line_too_long | frame exceeds 192B | closed |
no_leader | (cluster) leader currently unknown — an election is in progress | closed |
not_active | node can't serve — it's shutting down | closed |
- These are the complete eight reasons, and every one closes the connection. A raw client may use
Efor diagnostics, but must not try to resynchronize and reuse that stream. - Official clients validate keys and time ranges before sending, so
bad_*is not a normal API result. no_leader/not_activeare temporary node states, butEcarries no owner/key and cannot be correlated safely. Discard the session; only requests not yet sent may be tried on a new one. Never automatically resend an acquire that may have been sent.M,L,no_leader, andnot_activeonly appear in cluster mode — a single server never sends them.- A full wait queue comes back as
B(busy), not as anE— because it echoes the key andowner, so you can tell exactly which request was rejected.
Byte notation:
opis an ASCII character, andreasonis ASCII text (variable-length, shown asNin the structure). The trailing\nis0A.
Flow
E lets a peer observe diagnostic information, but never permits safe stream reuse. Recoverable capacity rejection uses B (busy), which echoes owner and key.