Actualmente en pruebas: el código de GitHub se abrirá al finalizar.

E · Error

Estructurarefresh

Respuesta cuando una solicitud no puede procesarse. El texto reason ocupa el lugar de la key. La key no se devuelve, por lo que una trama no identifica qué solicitud con pipeline falló. Por eso todo E es connection-fatal. El servidor hace flush de E si puede y cierra; los clientes oficiales también descartan la sesión. Todo acquire con al menos un byte enviado y sin respuesta definitiva termina como Indeterminate, nunca como éxito o fallo supuesto.

reasoncausaconexión
auth_faileddiscrepancia en el digest del protocolo de autenticacióncerrada
bad_opcódigo de op desconocidocerrada
bad_requestcabecera fija insuficiente (10 bytes para A, 8 para R)cerrada
bad_leaselease es 0 o 251..255cerrada
bad_keyclave ausente / supera 128B / contiene espacio o salto de línea / no es UTF-8cerrada
line_too_longla trama supera 192Bcerrada
no_leader(clúster) el líder actual se desconoce — hay una elección en curso; reintenta en brevecerrada
not_activeel nodo no puede atender — se está apagandocerrada
  • Estas ocho razones son la lista completa y todas cierran la conexión. Un cliente raw puede diagnosticarlas, pero no debe resincronizar ni reutilizar el stream.
  • Los clientes oficiales validan key y tiempos antes de enviar; bad_* no es un resultado API normal.
  • no_leader y not_active son temporales, pero E no tiene owner/key. Descarte la sesión; solo las solicitudes aún no enviadas pueden probarse en otra. Nunca reenvíe automáticamente un acquire enviado.
  • M, L, no_leader y not_active solo aparecen en cluster.
  • La capacidad llena devuelve B (ocupado), no E, porque repite owner y key.

Notación de bytes: op es un carácter ASCII, y reason es texto ASCII (longitud variable, mostrado como N en la estructura). El \n final es 0A.

Flujo

Cliente
Servidor
trama inválida (p. ej. >192B)
E · line_too_long
flush de E y cierre de conexión
todo acquire enviado queda Indeterminate
solicitudrespuesta

E permite observar diagnóstico, pero nunca reutilizar el stream de forma segura. Un rechazo recuperable de capacidad usa B (ocupado), que repite owner y key.