DevToolPal
日本語
4xx クライアントエラー

409 Conflict

競合

意味

リクエストがリソースの現在の状態と競合しています。重複や同時編集などです。

よくある原因

  • 既に存在するレコードを作成しようとした(一意のメールや名前)
  • 他の人が変更したリソースを編集した
  • git のようなバージョンや状態の競合

対処法

クライアント・閲覧者の場合

最新の状態を取得し、競合を解決するか別の値を選んでから再試行します。

サイトや API の運営者の場合

何が競合しているかをボディで説明します。ETag による楽観的ロックには 412 のほうが正確です。

レスポンス例

HTTP/1.1
HTTP/1.1 409 Conflict
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Content-Type: application/problem+json

{
  "type": "about:blank",
  "title": "Conflict",
  "status": 409,
  "detail": "A user with this email already exists."
}

仕様

RFC 9110 §15.5.10

よくある質問

› 重複したメールには 409 と 422 のどちら?

どちらも使われます。既存データとの競合なら 409、検証フレームワークなら 422 が合います。一貫させてください。

› クライアントは 409 を自動再試行すべき?

いいえ。競合には通常判断が必要です。まずデータを更新します。