> For the complete documentation index, see [llms.txt](https://docs.notionapps.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.notionapps.com/troubleshooting/save-failed-field-missing-after-sync.md).

# 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](https://docs.notionapps.com/troubleshooting/save-conflict-409-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:

1. You add, rename, delete, or change the type of a Notion property (often **files**).
2. You click **Sync**.
3. The sheet map drops or replaces the old field id.
4. A File upload, filter, or formula still references the old id.
5. 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](https://docs.notionapps.com/databases/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

1. Open **Databases** → the sheet you synced → confirm the property list. Find the renamed or missing property.
2. Open every screen that uses that database (lists, forms, details).
3. For each component whose property picker is empty or shows a stale name: **rebind** to the current property, or **delete** the component.
4. Check builder filters, sorts, in-app filters, submit `change_data` actions, and visibility rules for the same field id.
5. Wait for autosave to succeed (or click Save if you have one). The toast should clear.
6. Preview the screen. Publish only after save succeeds.

If the schema change was a mistake:

1. Restore the property **name and type** in Notion (especially files → files).
2. [Sync](https://docs.notionapps.com/databases/reload-and-sync) again.
3. 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](https://docs.notionapps.com/settings/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.

## Related

[Reload and sync](https://docs.notionapps.com/databases/reload-and-sync). [Notion property types](https://docs.notionapps.com/databases/notion-property-types). [409 conflict](https://docs.notionapps.com/troubleshooting/save-conflict-409-multi-tab).
