Skip to content

Código de status HTTP · Erros do cliente (4xx)

Erro 423 Locked

O erro 423 Locked significa que o recurso que você tentou alterar, ou o destino dele, tem um lock WebDAV e você não apresentou o token. A causa comum é outro usuário, ou um cliente que travou, ainda segurando o arquivo aberto para edição.

Dados sobre este código de status
Classe4xx, Erros do cliente
Definido emRFC 4918 §11.3
Pode ir para o cache por padrãoSó com Cache-Control ou Expires explícitos
Pode repetir o pedidoSim, quando o lock for liberado ou expirar, ou na hora se você tiver o token do lock
Cabeçalhos relevantes
  • If: o cliente prova que tem o lock enviando o token neste cabeçalho
  • Lock-Token: devolvido pelo LOCK e necessário depois para o UNLOCK

O que significa o 423

A RFC 4918, seção 11.3, define o 423 para quando a origem ou o destino do método está bloqueado, e pede que o corpo traga um código de pré-condição como lock-token-submitted ou no-conflicting-lock. Aplicativos do Office editando arquivos no SharePoint, Nextcloud ou ownCloud pegam um lock exclusivo com o método LOCK para duas pessoas não sobrescreverem o trabalho uma da outra.

O lock tem prazo de validade, então um lock esquecido por um notebook que foi fechado costuma sumir sozinho. Até lá, PUT, MOVE, DELETE e PROPPATCH naquele arquivo respondem 423.

Causas comuns

Se você está visitando o site

  • Um colega está com o documento aberto no Word ou Excel por uma pasta sincronizada ou unidade de rede.
  • O seu próprio editor travou ou perdeu a conexão com o arquivo aberto, e o lock ficou para trás.

Se você administra o servidor

  • Um cliente WebDAV manda PUT ou MOVE sem o cabeçalho If com o token recebido no LOCK.
  • Timeout de lock muito longo (ou Infinite), então locks abandonados nunca expiram.

Como resolver

Se você está visitando o site

  • Peça para quem está com o arquivo aberto fechá-lo, ou espere o timeout do lock passar.
  • No Nextcloud, um administrador pode limpar locks presos (occ files:scan, ou o app files_lock se estiver instalado); no SharePoint, fechar o arquivo em todos os dispositivos libera o lock.

Se você administra o servidor

  • Faça o cliente guardar o Lock-Token da resposta do LOCK e devolvê-lo como If: (<token>) em toda escrita.
  • Use timeouts de lock finitos, na casa dos minutos, e deixe o cliente renová-los enquanto o arquivo estiver aberto.

Como enviar um 423

Express (Node.js)
app.put('/files/:name', (req, res) => {
  res.status(423).json({ error: 'File is locked by another client' });
});
Next.js App Router (route handler)
// app/files/[name]/route.ts
export async function PUT() {
  return Response.json(
    { error: 'File is locked by another client' },
    { status: 423 }
  );
}
Go net/http
mux.HandleFunc("PUT /files/{name}", func(w http.ResponseWriter, r *http.Request) {
	w.Header().Set("Content-Type", "application/json")
	w.WriteHeader(http.StatusLocked) // 423
	w.Write([]byte(`{"error":"File is locked by another client"}`))
})
Python FastAPI
from fastapi import FastAPI, HTTPException

app = FastAPI()

@app.put("/files/{name}")
def put_file(name: str):
    raise HTTPException(status_code=423, detail="File is locked by another client")

Costuma ser confundido com

423 vs 409
O 409 é um conflito genérico com o estado do recurso; o 423 aponta a razão exata, um lock ativo nas mãos de outra pessoa.
423 vs 403
O 403 vale enquanto suas credenciais forem as mesmas; o 423 some quando o lock é liberado, com as mesmas credenciais.

Perguntas frequentes

Quanto tempo dura um lock WebDAV?
O tempo que o cliente pediu no LOCK e o servidor aceitou, geralmente de alguns minutos a uma hora. O cliente renova enquanto o arquivo está aberto; quando para de renovar, o lock expira e os 423 acabam.
O erro 423 aparece fora do WebDAV?
Algumas APIs REST usam 423 para registros bloqueados para edição ou contas bloqueadas temporariamente, mas é um uso informal. O significado registrado é o do WebDAV, na RFC 4918.
Erro 423 é o mesmo que arquivo somente leitura?
Não. Um arquivo somente leitura é recusado com 403 para todo mundo, o tempo todo. Um lock 423 pertence a um dono e termina quando ele desbloqueia ou quando o prazo acaba.

Revisado em por Arielton Oberek.