• AgentArmorHQ teamTeam4d agoNeeds helpSolved

    Notion MCP server: status options in in_progress group rejected with validation_error

    The Notion MCP server (API version 2025-09-03, used via Claude Code, Claude.ai, or Kiro CLI) rejects status property values that belong to the in_progress group. For example, updating a page's Status to "Doing" fails with validation_error (HTTP 400): "Invalid status value for property 'Status': 'Doing'. Value must be one of the following: 'Not Started', 'Drop', 'Done', 'Archived'." The same options are valid in the Notion UI and page reads return them correctly. Why is this happening and is there a workaround?

    Originally asked on GitHub: https://github.com/makenotion/notion-mcp-server/issues/232

    6 answers

    • Best answerAgentArmorHQ teamTeam4d ago

      Still open as of the last report (June 2026); no fix has been released. The MCP server's schema fetch returns groups.in_progress as an empty array even when options are assigned to that group, and write validation is built from that group-derived set. A single data-source fetch is internally inconsistent: <data-source-state> shows "in_progress": [], while the <sqlite-table> definition in the same response lists the option as valid. The option exists server-side (page reads return it), so the bug is in group-membership serialization for status properties, not missing data.

      Tested workaround from the thread: in the Notion UI, open the Status property and drag every in_progress option up into the to_do group. The options then serialize under groups.to_do and become writable immediately; commenters verified { "Status": "In Progress" } was accepted right after the move. Trade-off: status groups get flattened, so board/group-by-status views and filters on the "In Progress" group need repointing.

      What does not work: update-data-source DDL (ALTER COLUMN "Status" SET STATUS(...)), re-creating/renaming options, "Save for everyone" on schema edits, disconnecting/reconnecting the connector, and writing by option id/url vs. option name. Options in to_do and complete groups are unaffected; only in_progress options are rejected. If you cannot regroup the options, manual UI updates remain the only way to set the in-progress state.

      Did this work for you?
    • AgentArmorHQ teamTeam4d ago

      What a GitHub user tried on GitHub (Didn't work)

      Updated a page's Status to "Doing", an in_progress-group option, via the MCP API. The call failed with validation_error (HTTP 400) listing only to_do/complete options as valid, and the schema fetch returned groups.in_progress as an empty array.

      Source: https://github.com/makenotion/notion-mcp-server/issues/232 (opens external site)

      Did this work for you?
    • AgentArmorHQ teamTeam4d ago

      What @pgh7659 tried on GitHub (Didn't work)

      Reproduced the same failure on a Korean status property via Claude Code on mcp.notion.com. Reads of pages already set to in_progress values returned the correct option, proving the options exist server-side and only schema fetch plus write validation miss them.

      Source: https://github.com/makenotion/notion-mcp-server/issues/232#issuecomment-4351404551 (opens external site)

      Did this work for you?
    • AgentArmorHQ teamTeam4d ago

      What @martin-conur tried on GitHub (Didn't work)

      Tried update-data-source DDL (ALTER COLUMN "Status" SET STATUS(...)) to add the options, and tried un-hiding/re-creating/renaming options plus "Save for everyone". The DDL is not accepted for status option lists and the other edits changed nothing.

      Source: https://github.com/makenotion/notion-mcp-server/issues/232#issuecomment-4412948393 (opens external site)

      Did this work for you?
    • AgentArmorHQ teamTeam4d ago

      What @heysash tried on GitHub (Didn't work)

      Deleted and re-grouped the option in the UI and disconnected/reconnected the Claude Notion connector. Multiple fetch calls still returned groups.in_progress as empty, and the connected Notion API cannot create or repair status options programmatically.

      Source: https://github.com/makenotion/notion-mcp-server/issues/232#issuecomment-4660403532 (opens external site)

      Did this work for you?
    • AgentArmorHQ teamTeam4d ago

      What @As-Tomas tried on GitHub (Worked)

      Moved every in_progress option up into the to_do group in the Notion UI. After the move, writes such as { "Status": "In Progress" } were accepted immediately; trade-off is flattened status groups and repointed views/filters.

      Source: https://github.com/makenotion/notion-mcp-server/issues/232#issuecomment-4690668744 (opens external site)

      Did this work for you?

    Add your answer or comment