🚨Save failed / field missing after Sync (NoFieldInSheet)
Canonical troubleshooting page for builder autosave that fails after a Notion schema change.
What this is
The builder saves the app definition on a timer. If a component, filter, or action still points at a sheet field that is no longer on the database, the API rejects the save with a 400 and a NoFieldInSheet (or equivalent “field not in sheet”) error. The toast looks like Save failed. Notion rows are usually fine. The draft app is what cannot save.
This is not a 409 conflict (that is multi-tab). This is not a publish failure by itself — but you cannot publish a draft that will not save.
When you see it
Typical sequence:
You add, rename, delete, or change the type of a Notion property (often files).
You click Sync.
The sheet map drops or replaces the old field id.
A File upload, filter, or formula still references the old id.
Autosave fails, sometimes dozens of times in a row.
Files properties are a frequent trigger because they map to URL in NotionApps and makers rebind them after a rename. See Notion property types.
Before you start
Know which database you synced last.
Prefer one builder tab.
If you have a good published version, do not panic — users still have that version until you publish a bad one.
Fix it
Open Databases → the sheet you synced → confirm the property list. Find the renamed or missing property.
Open every screen that uses that database (lists, forms, details).
For each component whose property picker is empty or shows a stale name: rebind to the current property, or delete the component.
Check builder filters, sorts, in-app filters, submit
change_dataactions, and visibility rules for the same field id.Wait for autosave to succeed (or click Save if you have one). The toast should clear.
Preview the screen. Publish only after save succeeds.
If the schema change was a mistake:
Restore the property name and type in Notion (especially files → files).
Sync again.
If the builder sheet is worse than a snapshot, Rollback Recovery History, then rebind.
Do not clone the app to escape this. The clone copies the broken bindings.
What users see
Nothing, until you publish. They keep the last good published version. If you already published a broken field map, they may see empty file fields or failed uploads — revert Version History.
Example
A delivery portal has a File versions database and a Delivered file (files) property. After a rename and Sync, the file component still pointed at the old field. Autosave returned 400 NoFieldInSheet. Fix: rebind the file component to Delivered file, save, then publish.