Table Conversion Issues
Table Cell Count Mismatch
Error: Number of cells in table row must match the table width of the parent table
Error: Number of cells in table row must match the table width of the parent table
Error Message:What This Means:
Your markdown table has rows with inconsistent numbers of columns. Notion requires all rows in a table to have the same number of cells.Common Causes:
- Missing pipe separators (
|) in markdown table rows - Extra or missing cells in some rows
- Malformed table syntax with inconsistent column counts
- Copy-pasted tables from other sources with formatting issues
- Check your markdown table syntax:
-
Validate your table before sending:
- Count the number of
|separators in each row - Ensure header, separator, and all data rows have the same column count
- Use a markdown editor with table validation
- Count the number of
- Handle empty cells properly:
Page and Block Access Issues
Invalid Page ID Format
Error: page_id should be a valid uuid
Error: page_id should be a valid uuid
Error Message:What This Means:
The page ID you provided is not in the correct UUID format. Notion page IDs must be properly formatted UUIDs with hyphens.Common Causes:
- Copying page ID from URL without hyphens
- Using the page title or slug instead of ID
- Including quotes or extra characters around the ID
- Passing
"null"or"<string>"as the page ID
- Get the correct page ID from the URL:
-
Format it correctly with hyphens:
- Notion page IDs must follow UUID format:
8-4-4-4-12characters separated by hyphens - Example:
1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p - You can use online UUID formatters or Notion’s “Copy link” feature to get the properly formatted ID
- Notion page IDs must follow UUID format:
-
Don’t use these as page IDs:
- ❌ Page titles:
"My-Multi-Category-Document" - ❌ Literal strings:
"null","<string>" - ❌ URLs:
"https://notion.so/..."
- ❌ Page titles:
Page or Block Not Found
Error: Could not find page with ID
Error: Could not find page with ID
Error Message:What This Means:
Your Notion integration doesn’t have access to the page, or the page doesn’t exist.Common Causes:
- Page not shared with your integration
- Page was deleted or moved
- Using an old/expired page ID
- Wrong workspace (integration in different workspace than page)
- Page is in a private database
-
Share the page with your integration:
- Open your target Notion page
- Click the three dots (•••) in the top right corner
- Select “Connections” → “Add connection”
- Find and select your integration from the list
-
Verify the page exists:
- Try opening the page URL in your browser
- Check if the page was recently deleted or archived
- Confirm you’re in the correct workspace
-
Check integration permissions:
- Go to notion.so/my-integrations
- Find your integration
- Verify it has “Content” capabilities
- Check which workspaces it’s installed in
-
For pages in databases:
- Share the entire database with your integration
- Individual pages inherit database permissions
Block ID Used Instead of Page ID
Error: Provided ID is a block, not a page
Error: Provided ID is a block, not a page
Error Message:What This Means:
You’re trying to use a block ID in the
pageId parameter. All endpoints require a page ID, not a block ID.Solutions:-
Use the parent page ID:
- Get the ID of the page that contains the block
- The page ID is in the URL when you open the page
- Use this page ID in the
pageIdparameter
-
Want to insert after a specific block?
- Use the page ID in the
pageIdparameter - Pass the block ID in the
afterparameter
- Use the page ID in the
- Identify the difference:
Database ID Used Instead of Page ID
Error: Provided ID is a database, not a page
Error: Provided ID is a database, not a page
Error Message:What This Means:
You’re trying to add content directly to a database. You need to create or update pages within the database instead.Solutions:
-
Create a page in the database first:
- You cannot append content directly to a database
- Create a new page in the database, then append to that page
- Or get the ID of an existing page in the database
-
Get a page ID from the database:
- Open a page within the database
- Copy that page’s ID from the URL
- Use that page ID for your API request
Archived Block Access
Error: Can't edit block that is archived
Error: Can't edit block that is archived
Error Message:What This Means:
The page or block you’re trying to modify has been archived in Notion.Solutions:
-
Unarchive the page/block:
- Open the page in Notion
- Click “Restore”
-
Check page status before editing:
- Verify the page is not in the trash
- Ensure the parent page/database is not archived
Notion API Limitations
Good News: The Mark2Notion API now automatically handles all Notion API content limitations. The errors listed below should no longer occur, as our system automatically splits or truncates content to meet Notion’s requirements.If you encounter any of these errors, please contact support.
Rich Text Length Exceeded
Error: rich_text.length should be ≤ 100
Error: rich_text.length should be ≤ 100
Error Message:Status: This issue is now automatically handled by the APIWhat This Means:
Notion limits rich text arrays to 100 elements per block. Blocks exceeding this limit are automatically split into multiple blocks.
This issue has been fixed. If you’re still seeing this error, please contact support at [email protected].
Text Content Length Exceeded
Error: text.content.length should be ≤ 2000
Error: text.content.length should be ≤ 2000
Error Message:What This Means:
Individual text segments in Notion cannot exceed 2,000 characters.
This issue was fixed. The API now automatically handles text splitting.If you’re still seeing this error, it may indicate an issue with your Notion integration token. Please contact support.
Request Validation Errors
Missing Required Fields
Error: Field is required
Error: Field is required
Error Messages:What This Means:
Your request is missing required parameters.Solutions:
- Check required fields per endpoint:
-
Common mistakes:
- ❌ Sending empty strings:
markdown: "" - ❌ Wrong data types:
pageId: 123(should be string) - ❌ Empty arrays:
blocks: [] - ❌ Undefined/null values:
notionToken: null
- ❌ Sending empty strings:
Empty or Invalid Markdown
Error: Markdown cannot be empty / No blocks generated
Error: Markdown cannot be empty / No blocks generated
Error Messages:What This Means:
Your markdown content is empty or doesn’t contain any valid content that can be converted to Notion blocks.Solutions:
-
Ensure non-empty content:
- Markdown must contain actual text content, not just whitespace or newlines
- Check that your markdown string is not empty before sending
-
Common invalid content:
- ❌ Empty strings:
"" - ❌ Only whitespace:
" " - ❌ Only newlines:
"\n\n\n" - ✅ Valid:
"# Hello World"or any text with letters/numbers
- ❌ Empty strings:
-
Validate before sending:
- Trim whitespace and check if the result has actual content
- Ensure the markdown contains at least some alphanumeric characters
Invalid JSON in Request
Error: Invalid JSON / Malformed JSON
Error: Invalid JSON / Malformed JSON
Error Messages:What This Means:
Your request body contains malformed JSON that cannot be parsed.Common Causes:
- Unescaped special characters in strings (newlines, quotes, backslashes)
- Form-encoded data instead of JSON
- Syntax errors (missing commas, brackets, quotes)
- Incorrect Content-Type header
- Use proper JSON encoding:
- Set correct Content-Type header:
- Don’t use form encoding:
- Escape special characters:
Authentication Issues
Invalid API Token
Error: API token is invalid
Error: API token is invalid
Error Message:What This Means:
The Notion integration token you provided is invalid or has been revoked.Solutions:
-
Verify your token:
- Go to notion.so/my-integrations
- Find your integration
- Check if it’s active (not deleted)
- Regenerate a new secret if needed
-
Check token format:
- Notion tokens start with
ntn_ - Should be a long alphanumeric string
- No extra spaces or quotes
- Notion tokens start with
-
Common mistakes:
- Using an old/expired token
- Copy-pasting with extra spaces
- Using a different workspace’s token
Missing API Key
Error: Missing x-api-key header
Error: Missing x-api-key header
For authentication issues with the Mark2Notion API key (not Notion token), see the Error Handling page.
Rate Limiting and Usage
Quota Exceeded
Error: Usage quota exceeded
Error: Usage quota exceeded
Error Message:What This Means:
You’ve reached your monthly API request limit for your current plan.Solutions:
-
Check your usage:
- Monitor your usage in the dashboard
-
Wait for reset:
- Free tier quotas reset monthly
- Check when your next billing period starts
-
Upgrade your plan:
- Visit the dashboard to upgrade to a higher tier
- Higher tiers offer more requests per month
Usage Counter Not Found
Error: No usage counter found for current period
Error: No usage counter found for current period
Error Message:What This Means:
This is an internal error related to usage tracking initialization.Solutions:
-
Retry the request:
- This is usually a transient error
- Wait a few seconds and try again
-
If it persists:
- Contact support through the feedback page
Notion-Specific Errors
Conflict on Save
Error: Conflict occurred while saving
Error: Conflict occurred while saving
Error Message:What This Means:
The page was modified by another user or process while your request was being processed.Solutions:
-
Retry the request:
- This is usually a transient error
- Wait a few seconds and try again
- Use exponential backoff (wait longer between each retry)
-
Avoid concurrent edits:
- Don’t make multiple simultaneous requests to the same page
- Implement request queuing for frequent updates
Notion API Timeout
Error: Request to Notion API has timed out
Error: Request to Notion API has timed out
Error Message:What This Means:
The request to Notion’s API took too long and timed out.Common Causes:
- Very large content being processed
- Notion API experiencing slowdowns
- Complex markdown with many blocks
-
Retry the request:
- Notion may be experiencing temporary issues
- Wait a few seconds before retrying
-
Break up large requests:
- If sending very large content, split it into smaller chunks
- Send chunks separately with small delays between requests
- This prevents timeouts and improves reliability
-
Monitor Notion status:
- Check Notion’s status page
- If Notion is down, wait for recovery
Still Having Issues?
If you’re experiencing an error not covered here:Report an Issue
Report bugs or unexpected errors on GitHub
Contact Support
Get help from our support team
Check the Error Handling page for general error formats and best practices for handling API errors in your code.