Engineering · · 4 min read
Why can my agent find a Notion page but not read its contents?
Answers to Notion page-body, sharing, pagination, nested-block, and search questions, with a retrieval checklist for grounded agent answers.
The agent knows the document title and can produce a link, then guesses what the document says. Diagnose that retrieval failure before touching the prompt.
Public questions cover how to retrieve page content, why a shared page returns object_not_found, and how to retrieve more than one page of results. These are three different problems, and a connection test that only finds a title misses all of them.
Why does retrieving a Notion page return properties but no body?#
A page object and its body are different API resources. Notion's page retrieval reference directs callers to retrieve block children for page content, so a title and properties are no evidence that the paragraphs were fetched.
In your retrieval adapter, keep metadata loaded and content loaded as separate states. For a policy question, a metadata-only result should produce "I found the document but have not read its body," followed by the retrieval step.
Test with a page whose title suggests one answer while its body, deep enough to require real retrieval, states another. An agent that answers from the title fails immediately.
Why do I get object_not_found even though I can open the page?#
Browser access and integration access are different. Verify the page identifier, the connection used by the request, and whether that connection has access to the page. The linked public question involves both URL-versus-ID confusion and sharing, and Notion's page reference documents the not-found behavior.
Test with the failing agent's credential path, because your browser session proves nothing about what that connection can read. Do not print tokens while comparing configurations; log a non-secret connection identifier and the requested page ID.
Keep the failure statement narrow: "The connected integration cannot retrieve this page" is actionable, and "This company has no policy" is unsupported. Repeating the call without changing the identifier or access resolves nothing.
How do I retrieve more than the first batch of results?#
Follow the endpoint's pagination fields. Notion's block-children reference describes has_more, next_cursor, and start_cursor. A short first response does not prove the collection ends there.
Keep each cursor paired with its original resource and query, and never reuse a cursor from a different page, filter, or operation. Record whether retrieval completed, hit your budget, or failed partway.
Keep partial retrieval visible in the answer. "I checked the first batch of records" and "I checked all matching records" support different conclusions, and dropping the distinction turns a missing exception into an apparent universal rule.
Why are nested paragraphs or list items missing?#
Retrieving immediate block children does not traverse all descendants. The block-children documentation explains that blocks with children need additional retrieval. Your adapter decides which nested content is needed and keeps its parent relationship.
Use a queue or stack with a visited set and a fixed traversal budget. Keep headings attached to their descendants so the agent does not attach an exception to the wrong policy, and do not flatten every paragraph into one unlabeled string when the answer depends on a table, section, or toggle.
A good fixture has a heading, a nested exception, a second page of children, and a block the integration cannot retrieve. Check that the answer uses the exception and discloses the missing material.
Can Notion search enumerate everything the agent needs?#
Search is not a complete inventory and lags behind changes. Notion documents search limitations and indexing behavior. A missing search hit is a reason to inspect retrieval scope, sharing, and indexing before declaring the document absent.
For recurring work, keep stable references to the documents the team relies on and refresh their content under the current connection when the task requires it. Search finds a likely source, and a saved reference spares the next task from rediscovering it.
Return a retrieval report with the answer:
Source: onboarding policy / stable page identifier
Connection: support knowledge reader
Retrieved: page metadata, body, nested exception section
Incomplete: one linked document requires separate access
Observed revision: saved with this retrieval
Answer scope: standard employees; contractor exception unresolved
For Notion-connected work, the report lets a reviewer inspect the answer and another agent resume. Next, keep reviewed answers current, including corrections and superseded policies. Find other symptoms in the agent troubleshooting question index.