HTTP Status Codes

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.