409 Conflict は、リクエストが対象リソースの現在の状態と競合しているため、完了できなかったことを示します。クライアントが競合を解消してリクエストを再送できる場合もあるため、レスポンスには競合の原因を特定できるだけの情報を含めるべきです。
最もよく見られるのは PUT と PATCH で、2 人のユーザーが同じドキュメントを編集した場合、保存されているものより古いバージョンをクライアントがアップロードした場合、すでに存在するレコードの作成を API が拒否した場合などです。WebDAV では、親のコレクションが存在しないときに MKCOL と PUT が 409 を返します。
If-Match を使った条件付きリクエストに対する標準の応答は、412 Precondition Failed です。409 は、サーバーが自ら検出した競合に使われます。
レスポンス例
HTTP
HTTP/1.1 409 Conflict
Date: Fri, 06 Nov 2026 10:15:32 GMT
Content-Type: application/problem+json
Content-Length: 99
{"title":"Edit conflict","detail":"The document was changed by another user (current version: 7)."} SEO とリダイレクトチェック
409 は、API や編集のワークフローで使われるものです。クローラーは GET でページを取得するため、公開ページが 409 を返すことはあってはなりません。もし返した場合は 4xx エラーとして扱われ、インデックスされません。
よくある原因と主な用途
- 2 人のユーザーが同じレコードを保存し、後からの保存が拒否された場合。
- すでに存在するユーザー、ファイル、その他のリソースを、クライアントが作成しようとした場合。
- 現在のものより古いバージョンのファイルを、クライアントがアップロードした場合。
- WebDAV の
MKCOLやPUTが、親が存在しないフォルダーを対象にしている場合。