428 Precondition Required
The server requires the request to be conditional to prevent the 'lost update' problem.
Definition (RFC 6585)
HTTP status code 428 428 Precondition Required is defined in RFC 6585 (Additional HTTP Status Codes), not in RFC 9110. RFC 9110 defines the core HTTP status codes; this one was registered separately in the IANA HTTP Status Code Registry.
Description
428 Precondition Required (RFC 6585) indicates that the origin server requires the request to be conditional. This is used to prevent the "lost update" problem: without conditional requests, a client might unknowingly overwrite changes made by another user since the resource was last fetched.
The server is essentially saying: "I require you to prove you have the latest version before I allow this modification."
Common Causes
- REST API enforcing optimistic concurrency: requires
If-Matchon PUT/PATCH/DELETE - CMS or document editor requiring version checks before saving
- Shared resource management preventing silent overwrites
How to Fix
- Include the appropriate conditional header:
If-Matchwith the currentETag - Fetch the resource first to get the
ETagbefore modifying - Implement optimistic locking in your API client
- Document that conditional headers are required in API documentation
Check your website's HTTP status code
Check now →