何が起きたのか?
423 は「そのリソースは今、別の誰かが触っている最中なので、書き込みは待ってほしい」というサインです。 教室で言えば、隣の席の子が今その教科書を使って書き込みをしている最中なので、こちらは順番待ち——そんな状況に近いです。
主に WebDAV の排他ロック機構で使われますが、アプリケーション独自の排他制御でも返されることがあります。409 が「結果として状態が衝突した」のに対して、423 は「明示的にロックが掛かっていて、最初から触れない」という違いがあります。
黒板からのひとこと
班で 1 冊のノートを共有して書き込むとき、誰か一人が「今書いてるから少し待って」と意思表示をすることがあります。終わるまで他の子は手を止めて待つ。これは協調作業の基本で、結果的に内容がぐちゃぐちゃになるのを防ぎます。
423 もそれと同じで、サーバーは「今は触らせない」と明示的に伝えています。ロックの主が解放するまで待つか、自分が正当なロック保持者ならトークンを添えてやり直すか、その判断が必要です。
解決への歩み
大丈夫、次はこうしてみよう:
- 少し待ってから再試行:ロックは多くの場合、短時間で解放される
- 自分のロックならトークンを添える:If ヘッダにロックトークンを正しく指定
- ロック状態を確認:PROPFIND などでロック保持者と有効期限を調べる
- 長期ロックを点検(管理者向け):ロックタイムアウト、強制解除の手順、孤立ロックの掃除運用を整える
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 423 Locked
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>423 Locked</h1></body></html>