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 嗎?

不應該;衝突通常需要人來決定。請先重新整理資料。