Why is my form not syncing to Notion?

A form not syncing to Notion usually lost access to the database, hit a renamed property, or sent a value Notion rejects. Here's how to find which.

Nookesh KarriNovember 3, 20266 min read
Light cover card with the title 'Why is my form not syncing to Notion?' in dark text and a blue accent bar

When a form is not syncing to Notion, the cause is almost always one of three things: the form tool’s connection lost access to the database, a property was renamed or changed type, or the response contained a value Notion’s API rejects. Notion returns a specific error code for each case, so the fastest fix is to find the error first and guess second.

What a form not syncing to Notion usually means

A form not syncing to Notion means the form tool sent a request to Notion’s API and Notion refused it, or the tool never sent it at all. Every form-to-Notion tool, native or third-party, writes rows through a connection that needs explicit access to your database.

Notion’s connections help says you need to add a connection “to the specific page where it will be active.” No access, no rows. The same page notes that Notion doesn’t troubleshoot partner connections, so the form tool’s own logs are where you look.

Match the symptom to the cause

Each common symptom of a broken sync maps to a Notion API error code. Find the error in your form tool’s logs or failed-response list, then use this table.

What you see Notion error Likely cause Fix
Nothing arrives at all object_not_found (404) Database not shared with the connection Add the connection to the database
Worked yesterday, fails today unauthorized (401) Token revoked or expired Reconnect the workspace
Some responses fail, others work validation_error (400) A value breaks a property rule or size limit Fix the field mapping
Failures during a busy launch rate_limited (429) Too many requests at once Wait and retry
Permission message on write restricted_resource (403) Missing capability or block limit Check connection settings

Notion’s status codes reference gives the real wording. The 404 example reads: “Make sure the relevant pages and databases are shared with your connection.” If you see that line, skip everything else in this post and fix sharing.

Fix access first: share the database with the connection

The most common cause is access. Notion’s 404 says the resource does not exist “given the bearer token used,” and adds that it “can also indicate that the resource has not been shared.”

To restore it:

  1. Open the database the form writes to.
  2. Click •••, then in the Connections group choose Add connections.
  3. Pick your form tool’s connection. Notion only lists connections associated with this workspace.
  4. Submit a test response.

Two traps cause repeat failures. First, moving the database under a different parent page can take it out of the connection’s reach. Second, relation properties need the related database shared too: Notion’s property values reference warns that “missing access can leave relation values empty.” I covered that case in the relation property guide.

If the token itself is dead (a 401), sharing won’t help. Disconnect the form tool and reconnect the workspace from inside the tool.

When some responses sync and others don’t

Partial failures nearly always come from the data. Notion’s API returns validation_error when “the request body does not match the schema,” and the request limits page says any request over a size limit fails the same way.

Real limits that catch form responses:

  • Rich text caps at 2000 characters. A long “Tell us about your project” answer can go past it.
  • Multi-select takes 100 options per request. Emails and phone numbers cap at 200 characters.
  • Commas break select options. The property reference says “option names cannot contain commas.”
  • Status writes can’t invent a new option. Notion says a page write “does not create a new status option.”
  • Formula, rollup, Created by and unique ID values are read-only. Mapping a question to one of them fails every time.

Example: a client intake form maps “Services needed” to a status property with options New and In progress. A respondent picks “Design, branding”. The comma and the missing status option both break the write. Changing the property to multi-select and removing commas from option names fixes it.

Renamed or deleted properties cause the same pattern. If you rename Email to Contact email in Notion, many tools keep sending the old name until you remap the field.

Rate limits during a launch

Rate limits only matter when many responses land at once. Notion’s request limits page sets 180 requests per minute per connection on most plans, and 600 per minute on Business and Enterprise.

There’s also a shared per-workspace limit, so a busy workspace can be throttled even when your form tool stays under its own cap. Notion’s guidance is to retry 429 errors after the Retry-After wait, which is at most 60 seconds for the per-connection limit.

A 5-minute check order

Run these in order. Each one rules out a branch of the table above.

  1. Submit a test response with short, plain answers. If even that fails, it’s access or the token.
  2. Open the database’s ••• menu and confirm the form tool’s connection is listed.
  3. Compare every mapped field with its Notion property name and type.
  4. Submit a long, messy response: commas, a long paragraph, every option ticked. If only this fails, it’s a size or value rule.
  5. Check whether the failed responses still exist in the form tool, so you can resend them.

My take: never share a form publicly before you’ve run step 4. Real respondents write longer and stranger answers than the person who built the form.

For tool-specific setup, see the guides to a native form integration and a Zapier-based sync. File questions add their own rules, covered in Notion form file uploads.

How nDBForms handles failed Notion writes

nDBForms builds each form from your database’s properties, which removes most mapping mistakes. Each response is written to Notion, and a copy is kept in nDBForms’ own database for the dashboard and for retrying failed Notion writes. So a response that hits an access error isn’t lost while you fix the sharing.

The limitation: no form tool, nDBForms included, can write to a database its connection can’t see. If someone removes the connection from the page, syncing stops until it’s added back.

FAQ

Why did my form stop syncing to Notion after I moved the database?

Moving a database can put it under a page the form tool’s connection can’t see. Add the connection to the database again from the page’s ••• menu, then submit a test response.

Can a form write to a formula or rollup property?

No. Notion’s API treats formula and rollup values as read-only, so map that question to a regular property instead.

Why are some long answers missing in Notion?

Notion’s API limits a single rich text object to 2000 characters, and requests over a size limit fail with a validation error. Tools that don’t split long text can drop or reject the answer.

Do lost responses come back once I fix the sync?

It depends on the form tool. Some keep a copy and retry failed writes; others only send each response once. Check your tool’s response list for anything that never reached Notion.

Sources