precondition_failed

HTTP 412: Precondition failed

When it occurs

The If-Match header names a version or ETag that no longer matches the row's current one (MW-02): someone updated it since you last read it. That may have been the athlete, from their own account.

A stale If-Match against an object a concurrent request just deleted also returns 412. That holds while the deletion's tombstone is still addressable, within the 180-day retention window (SYNC-05). After the tombstone ages out, the same request returns not_found (404). Handle both the same way: re-read instead of retrying the write blind.

What to do next

GET the row again (a 404 there means it is genuinely gone), then reapply your change against whatever version comes back.