Back to all articles

Operations · Guide

Stop AI from overwriting a colleague’s latest edit

Use server-enforced version conditions, three-way comparison, and a two-window rehearsal to keep AI updates from erasing colleagues’ edits.

Stop AI from overwriting a colleague’s latest edit

Original AAHouse explanatory video. AI-assisted conceptual visuals and neural narration; original music.

English transcript · Simplified Chinese Mandarin transcript · Taiwan Mandarin transcript · Hong Kong Cantonese transcript · Macao Cantonese transcript

Two people, one record

Imagine a U.S. repair business. An AI assistant reads a customer record to add a service summary. Meanwhile, a dispatcher moves the appointment to the afternoon. If the assistant later writes its entire old copy back, the summary may be accurate while the appointment silently returns to the morning. This hypothetical illustrates a collaboration failure, not necessarily a language-model failure.

One record, two timelines
AI reads morning slot
Dispatcher selects afternoon
Stale save risks overwrite

Explanatory diagram redrawn from the approved article.

Read the version with the content

Keep the version token returned by the service, such as an ETag, alongside the data used to prepare the change. Do not ask the model to invent one or substitute a local timestamp. A record identifier answers which record; its version token helps answer whether the record is still the one the assistant read.

Keep data and version together
Record ID: which record
ETag: which revision
Proposed edit: what changes

Explanatory diagram redrawn from the approved article.

Make the write conditional at the server

An HTTP API that supports conditional updates can receive the saved ETag through If-Match. RFC 9110 describes this mechanism for preventing lost updates. The server evaluates the condition before the operation. An assistant that checks the record and then sends an unconditional save still leaves a window for another edit. This control belongs in the integration, not merely in a prompt. [S1]

Check at the write
Read revision A
Write conditioned on A
Server checks current revision

Explanatory diagram redrawn from the approved article.

Treat conflict as a decision, not a retry button

A typical HTTP precondition mismatch produces 412. Google’s AIP-154 resource-etag guidance instead specifies ABORTED. Read the actual API contract rather than assuming one universal error code. Our recommendation: move the task into a compare-current-version state. Never remove the condition just to make a retry succeed. [S2][S3]

Conflict means compare
Condition does not match
Read current record
Do not drop the condition

Explanatory diagram redrawn from the approved article.

Compare three versions

Keep the original snapshot, the assistant’s proposed change, and the current record. If the dispatcher changed the time while the assistant only added a summary, explicit rules may allow a new, narrow update. If both changed the same field, route the choice to its business owner. Different fields can still depend on one another. This is a proposed review workflow, not a promise that automatic merging is safe. Any rebuilt update must still use the newly read version condition; another intervening change can produce another conflict.

A three-way comparison
Original: morning / no summary
Proposed: morning / new summary
Current: afternoon / no summary

Explanatory diagram redrawn from the approved article.

Freshness is not permission

A matching token does not authorize an edit or establish that its content is correct. Keep permission and business checks separate. Also avoid two shortcuts: If-Match with an asterisk tests whether a representation exists, not whether it is the exact revision previously read; a weak ETag cannot satisfy its strong comparison. Confirm the connector supports the intended behavior. [S1][S2]

Three separate questions
Does the version match?
Is the edit authorized?
Is the business content right?

Explanatory diagram redrawn from the approved article.

Rehearse with two windows

In a test environment, let window A read a record. Change and save it in window B. Then submit A’s stale update. Expect a blocked conflict, B’s edit preserved, and an understandable comparison. Repeat with both writers changing the same field, another change after rereading, and an integration without conditional-write support. These are proposed acceptance tests, not reported test results.

The two-window drill
A reads → B changes
A submits stale copy → blocked
B’s change must remain

Explanatory diagram redrawn from the approved article.

Ask the connector questions first

This week, ask your vendor whether reads return a version, writes enforce it at the server, conflicts are distinguishable, and selected fields can be updated without replacing the whole object. Without dependable conditional writes, retain suggestion-only mode or a verified single-writer process. Save the successful receipt and resulting version before reporting completion. A last-save-wins policy is not a collaboration strategy.

Four connector questions
Return version / enforce condition
Expose conflict / narrow updates
No protection: suggestions first

Explanatory diagram redrawn from the approved article.

Need help turning an idea into a pilot?

Discuss your workflow

Sources and further reading

Editorial approach

AI-assisted original writing, checked against linked public sources. Practical recommendations and illustrative scenarios are editorial analysis, not reported client results. Source dates and product details may differ from this collection’s preparation date.