Skip to main content

🔒 Error 423 – Bloqueado (Locked)

El error 423 indica que el recurso solicitado está bloqueado y no se puede modificar ni acceder temporalmente.
Este código es típico de sistemas que manejan bloqueos de archivos, edición simultánea o candados de escritura, especialmente en entornos WebDAV, aplicaciones colaborativas o APIs con control de concurrencia.

En resumen:
El recurso existe, pero está bloqueado por otro proceso, usuario o regla del servidor.


Causas más comunes

  • 👤 Otro usuario está editando el recurso y lo ha bloqueado para evitar modificaciones simultáneas.

  • 🔐 Un archivo tiene un lock (candado) activo en WebDAV o servicios similares.

  • 📝 Control de concurrencia que no permite dos ediciones al mismo tiempo.

  • 🗄️ El sistema marcó el recurso como “inmutable” mientras se realiza una operación interna.

  • 🔧 Un proceso del servidor está usando el archivo y lo mantiene bloqueado.

  • 🛑 Errores en API donde el recurso debe desbloquearse antes de continuar.

  • ⚙️ Reglas de negocio que impiden modificar un recurso en cierto estado (ej. “en revisión”, “cerrado”).


🔧 Soluciones recomendadas

1️⃣ Esperar a que el recurso sea liberado (si hay edición simultánea)

En sistemas colaborativos:

  • Cuando un usuario abre un documento, se bloquea.

  • Cuando guarda/cierra, se libera.

Solución:
Intentar nuevamente luego de unos segundos o avisar al usuario.


2️⃣ Eliminar el lock desde el servidor (WebDAV, Nextcloud, OwnCloud, etc.)

En WebDAV, un lock se ve así:


Locked: true Lock-Token: <opaquelocktoken:1234abcd>

Solución:
Enviar una petición UNLOCK o eliminar el token en el panel del sistema.


3️⃣ Verificar permisos o estados del recurso

Ejemplos típicos:

  • No puedes editar una factura ya “cerrada”.

  • No puedes borrar un registro “aprobado”.

Solución:
Cambiar el estado del recurso antes de modificarlo.


4️⃣ Revisar procesos del servidor que estén usando el archivo

En Linux, puedes ver qué proceso lo tiene bloqueado:


lsof nombre-del-archivo

Si un proceso lo ocupó por error → reiniciar el servicio.


5️⃣ Corregir lógica de concurrencia en APIs

Ejemplo de respuesta de API:


{ "error": "resource_locked", "message": "El recurso está siendo utilizado por otro proceso." }

Solución:
Implementar estrategias como:

  • Retry after

  • Backoff exponencial

  • Gestión correcta de locks temporales


6️⃣ Verificar que no exista un “deadlock”

Un deadlock ocurre cuando:

  • Dos procesos se bloquean entre sí

  • Ninguno puede avanzar

Solución:
Reiniciar operación, limpiar locks o revisar la lógica del backend.


7️⃣ Desbloqueo manual en bases de datos

En SQL, un registro puede quedar bloqueado por:


SELECT ... FOR UPDATE

Si no se libera correctamente → 423.

Solución:

  • Terminar la sesión bloqueante

  • Liberar transacciones pendientes


🔐 Consejo Pro

Implementa mecanismos de desbloqueo automático:

  • Locks con expiración (TTL)

  • Avisos al usuario sobre quién está editando

  • Guardado automático de versiones

  • Posibilidad de forzar desbloqueos desde panel administrativo

Esto evita bloqueos eternos y mejora la experiencia del usuario.