For the complete documentation index, see llms.txt. This page is also available as Markdown.

⚠️Save conflict (409 / `__v`)

Canonical page for optimistic-lock failures when two builder sessions save the same app.

What this is

Each app document has a version field (__v). Publish and autosave send that version. If another tab, collaborator, or publish already wrote a newer version, the API returns HTTP 409 Conflict (UPDATE_APP_FAILED in error tracking). The product shows a conflict UI. This is expected, not a data-loss bug.

Bugsnag 409s are noise unless volume spikes or a customer cannot save at all.

When you see it

  • Two browser tabs on the same app

  • You and a collaborator editing together

  • Publish in one tab while autosave runs in another

  • A stale tab left open overnight

Fix it

  1. Leave one builder tab.

  2. In the tab you want to keep, reload when the conflict UI asks you to. Accept the server copy if you are not sure which is newer.

  3. Re-apply only the edits you still need.

  4. Publish once.

Do not keep clicking Publish through the 409. You will lose the race again.

What users see

Nothing. 409 is a builder event. The last successful publish is still live.

Example

You publish from tab A while tab B autosaves a filter change. Tab B shows conflict. Close tab B, reload tab A, redo the filter, publish once.

Publish & share. Save failed / field missing (different error: 400, not 409).