10107 NotWritablePrimary: not master / not writable primary
MongoDB¿Qué significa?
Se envió una escritura (u otra operación que requiere el primario) a un miembro del replica set que no es el primario en ese momento. Solo el primario acepta escrituras, por lo que la operación se rechazó.
¿Por qué ocurre?
La aplicación escribe en un secundario; durante un failover (elección), el antiguo primario pasó a secundario y el cliente sigue conectado a él; o la preferencia de lectura/escritura y la información de topología del driver están desactualizadas. La causa típica es que falte el parámetro replicaSet en la cadena de conexión.
Cómo solucionarlo
Configure el driver con todos los miembros del replica set y su nombre (replicaSet=... y todos los hosts en la cadena de conexión) para que el driver descubra el primario automáticamente y redirija ante un failover. Use la preferencia de lectura/escritura predeterminada, que dirige las escrituras al primario. Como es un error transitorio, habilite las retryable writes en la aplicación. Verifique qué miembro es PRIMARY con rs.status().
Más entradas de este motor
- 67 CannotCreateIndexCannot create index
- 27 IndexNotFoundIndex not found
- 79 UnknownReplWriteConcernUnknown replica set write concern
- 91 ShutdownInProgressThe server is in the process of shutting down (el servidor se está apagando)
- 189 PrimarySteppedDownPrimary stepped down while operation was in progress (el primario dejó de serlo durante la operación)
- 24 LockTimeoutOperation exceeded time limit waiting for a lock (la operación superó el límite de tiempo esperando un bloqueo)
- 7 HostNotFoundCould not find host