Notion troubleshooting
Use these checks to troubleshoot Notion authorization, indexing, and content access.
Providing indexing credentials is a required step of setup. Tool authorization is separate: each teammate connects their own Notion account, unless an admin has configured Cross App Access (XAA) with Okta for an eligible connection in the new setup flow.
- Indexed search covers whatever pages and databases you shared with the Glean integration during setup. It is not permission-aware: anything shared is visible to every Glean user who can access the connector.
- Read and write tools run per user. Notion enforces that person's permissions on every call, whether the user connects individually or Okta authorizes access through XAA. Neither method grants access to content the user can't access in Notion.
For details, see Per-user authorization.
Ask your Glean admin to confirm that workspace-level Cross App Access setup is complete and that Notion is allowed to use it. The workspace setup includes the Glean AI agent in Okta and a token exchange endpoint.
Notion must also enable enterprise-managed connections for Glean. If the option isn't available in Glean, contact your Glean representative to confirm eligibility. If Glean isn't available as a supported AI app in Notion, contact Notion.
See Set up Cross App Access for the Notion Enterprise, SSO, and admin prerequisites.
Check the connection in each application:
- In Okta, confirm that the Notion resource connection uses the Notion Client ID displayed in Glean, not the Glean AI agent's workspace-level client ID. Use
https://mcp.notion.comfor the Notion Issuer URL and Resource indicator. - Confirm that the Okta AI agent is active, the required Notion MCP scopes are allowed, and Notion has approved Glean under AI apps.
- Return to the Glean connector setup and complete Finish setup if you haven't already.
- Ask affected users to sign out of Glean and sign in again.
- Confirm that each user's Okta identity matches their Notion member identity and that they can access the content in Notion.
Don't change the indexing integration token to fix a tool-authorization problem. Cross App Access and indexing use separate credentials.
Before concluding a page isn’t indexed, verify its status:
- In the Glean Admin console, go to Glean Protect → Document lookup.
- Paste the exact Notion page URL and search. Watch for typos or trailing characters in the URL.
- To check overall connector health, go to Admin console → Connectors → Notion and review the crawl status and last successful crawl time.
Check whether the page contains body content or stores its information only in database properties. A property-only row can appear in search results without providing indexed body content to read or summarize. Reading that row directly may return NO_INDEXED_CONTENT.
Recrawling the same property-only row does not add those values to its page body. See Notion overview for how property indexing differs from readable content.
Issue: You’ve shared a page or database with the Glean integration, but it doesn’t appear in search results after the next crawl cycle.
Fix: Try these fixes based on the underlying issue:
| Issue | Fix |
|---|---|
Notion’s /search API didn’t return the page | Make a small edit to the page (for example, add and remove a space in the title) to update the page’s last_edited_time and help Notion resurface it in search results. |
| The integration lost access | Re-share the page with the Glean integration: open the page menu, select Connections, remove the Glean integration, wait a minute, and re-add it. |
| The page is archived or its parent chain is inaccessible | Confirm the page isn’t in Notion’s Trash and that every parent page in its hierarchy is accessible to the integration. |
| Notion’s search index is stale | Contact Notion support and report that the specific page isn’t being returned by the search API. In past cases, Notion has re-indexed the content on their side to resolve this. |
| The crawl hasn’t completed yet | New or updated content is picked up during the next full crawl, which runs every 6 hours. Wait for the cycle to complete and check again. |
Fallback: If the page still doesn’t appear after trying these fixes, enable Live Mode so Glean can fetch the page on demand at query time instead of relying on crawl-based discovery.
Issue: A page you deleted in Notion continues to show up in Glean search results.
Fix:
- Empty the Notion Trash to permanently delete the page. After the next completed full crawl confirms that Notion no longer returns the page, Glean can delete the previously indexed content, subject to the 10% deletion threshold.
- Remove the Glean integration from the trashed page before emptying the Trash, so the next crawl detects the access change sooner.
Fallback: Enable Live Mode for permission-aware retrieval. Live Mode respects Notion’s current permissions, so trashed content a teammate can’t access in Notion won’t appear in their results.
Issue: Crawls return errors, such as 400 Bad Request, after you create new database sources or use multi-source databases in Notion.
Fix: The Glean connector doesn’t yet support multi-source databases or the Notion API’s data_source_id parameter. Avoid creating new sources in connected databases.
Fallback: Continue using single-source databases until the connector adds support for multi-source databases.
Issue: A linked database view page doesn’t appear in search results even though you can see it in Notion.
Fix: Share the underlying database with the Glean integration, not the view page. Notion’s API only returns pages and databases that are directly shared with the integration. Linked database views are separate objects—sharing a view doesn’t automatically share the underlying database.
Fallback: If the linked view still isn’t indexed, use the directly shared database page in Glean search and Assistant queries.
If child pages are missing while their parent page appears in Glean:
- Re-share the parent page with the integration to re-trigger inheritance.
- Confirm the child pages aren’t archived.
- Make a small no-op title edit to an affected child page to bump its last edited time.