🔒 Error 423 – Bloqueado (Locked)
🔒 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í:
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:
Si un proceso lo ocupó por error → reiniciar el servicio.
5️⃣ Corregir lógica de concurrencia en APIs
Ejemplo de respuesta de API:
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:
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.