Ý nghĩa
Yêu cầu xung đột với trạng thái hiện tại của tài nguyên, ví dụ trùng lặp hoặc chỉnh sửa đồng thời.
Nguyên nhân thường gặp
- Tạo bản ghi đã tồn tại (email hoặc tên duy nhất)
- Sửa tài nguyên mà người khác đã thay đổi
- Xung đột phiên bản hoặc trạng thái kiểu git
Cách khắc phục
Nếu bạn là máy khách hoặc người truy cập
Lấy trạng thái mới nhất, giải quyết xung đột hoặc chọn giá trị khác rồi thử lại.
Nếu bạn quản lý trang web hoặc API
Giải thích trong phần thân điều gì bị xung đột. Với khóa lạc quan dùng ETag, 412 là trạng thái chính xác hơn.
Phản hồi mẫu
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."
} Đặc tả
Câu hỏi thường gặp
› Email trùng nên trả 409 hay 422?
Cả hai đều được dùng. 409 hợp với xung đột dữ liệu có sẵn; 422 hợp với framework kiểm tra hợp lệ. Hãy nhất quán.
› Client có nên tự thử lại 409 không?
Không; xung đột thường cần một quyết định. Hãy làm mới dữ liệu trước.