HTTP Status Codes
HTTP 428 Precondition Required
Precondition Required — the server requires a conditional request before changing state
A 428 Precondition Required response means the server will not allow the current state-changing request unless it includes an acceptable condition. The goal is usually to protect shared resources from lost updates by forcing the client to prove it is acting on a fresh resource state.
Visual summary
A quick reference view of how HTTP 428 requires a validator or timestamp condition before the server will allow a state-changing request.

What 428 Means
The shortest useful reading of this status code.
Precondition Required means the server requires a conditional request before changing state.
For write safety, the key distinction is that 428 requires the client to supply a condition before the server will even evaluate the state change.
Quick read
Condition required before write
A 428 means the server requires a conditional request before it will allow this state-changing action.
Technical Context
How this status behaves without turning the page into a repair guide.
Condition required
A 428 is about missing conditional safeguards. The request may be syntactically valid, and the resource may exist, but the server's policy says that state cannot change unless the client first supplies a validator, timestamp condition, or similar guard against stale writes.
State protection
That makes 428 different from 412 and 409. A 412 means the condition was present but failed. A 409 is a broader state conflict. A 428 is earlier in the flow: the server is requiring the condition before it will even evaluate the state change under that policy.
Related HTTP Codes
Nearby HTTP status codes help clarify how 428 differs inside the same response family.
428
Precondition Required
the server requires a conditional request before changing state
304
Not Modified
the stored representation is still current, so no body is sent
409
Conflict
Conflict
412
Precondition Failed
a conditional header did not match current resource state
Common Causes
Write request omits required If-Match or If-Unmodified-Since headers
The server insists on a condition before it will allow the current write to proceed.
Origin policy protects shared resources from lost updates
The service requires proof that the client is acting on a fresh resource state.
API expects proof that the client has current resource state
The request needs a validator or timestamp guard before state can change safely.
Typical Scenarios
An API refuses a write request because no If-Match validator was provided
A shared document service requires a condition before allowing a delete or overwrite
A client attempts to change a resource without proving it has the latest version
What To Know
A 428 usually appears on collaborative, stateful, or API-driven resources where stale writes are a meaningful risk. The visible pattern fits a server policy demanding conditional safety rather than a malformed request or a missing page.
Frequently Asked Questions
Common interpretation questions about HTTP 428.
It usually returns 428 when the server requires a conditional request before allowing a write, delete, or other state-changing action on a resource that could be updated concurrently.
A 428 means the needed condition was missing or not supplied in an acceptable way. A 412 means the condition was supplied, but it evaluated false against the current resource state.