Partial update_content edits return warnings
By Steven Van ·
Update page markdown and the notion-update-page MCP tool now apply matching edits and flag misses, failing only if no content-changing edit matches.
Notion's markdown update API now applies the update_content edits that match and reports the ones that don't, instead of dropping them silently or rejecting the whole call. The change covers the Update page markdown endpoint and the notion-update-page MCP tool, in both markdown versions, and is described in Notion's docs.
What the warnings contain
Each edit whose old_str matches nothing is skipped and listed in the warnings array of the PATCH /v1/pages/:page_id/markdown response. A warning carries a code and a message. Two codes apply to missed edits:
- no_match: the text was not found on the page.
- indentation_mismatch: the text is on the page but with different indentation.
The same array also reports syntax the v2 parser doesn't support, such as an unknown tag. In that case the update still runs and the warning says what the parser changed or ignored. The warnings field is left out when there are none, and other endpoints never return it.
When a request still fails
The request fails only when no content-changing edit matches. Before this change, the REST endpoint skipped misses without saying so, and the MCP tool failed the whole call if any edit missed.
Async updates (allow_async: true) don't return warnings in the task result.