428 Precondition Required
The server requires the request to be conditional — forcing clients to send If-Match so concurrent writes cannot silently overwrite each other.
What it means
428 Precondition Required (RFC 6585) lets a server mandate optimistic concurrency: it rejects an unconditional write and asks the client to resend with a precondition such as If-Match: <etag>. This closes the lost-update race where two clients overwrite each other.
Why it matters
- It prevents the classic lost-update problem by requiring version-checked writes.
- It complements 412, which reports a failed precondition once one is supplied.
Common mistakes
- APIs that allow unconditional overwrites and suffer silent data loss under concurrency.
How WebInspect checks this
- WebInspect reports ETag and conditional-request support relevant to safe writes.