Troubleshooting
Common errors and how to fix them
MISSING_ACCESS_TOKEN
Neither the vault (
Fix: Set
Neither the vault (
credentialID) nor the inline pageAccessToken field
resolved a token before the call was attempted.
Fix: Set
credentialID to a vault credential registered as
"primary", or supply pageAccessToken inline for local testing — see
Authentication.
FACEBOOK_AUTH_ERROR
The token resolved but is invalid, expired, or shorter than the 100-character minimum this node requires before even calling Graph.
Fix: Regenerate the Page access token and confirm it's a long-lived token, not a short-lived one that already expired (short-lived Page tokens last roughly 1-2 hours).
The token resolved but is invalid, expired, or shorter than the 100-character minimum this node requires before even calling Graph.
Fix: Regenerate the Page access token and confirm it's a long-lived token, not a short-lived one that already expired (short-lived Page tokens last roughly 1-2 hours).
FACEBOOK_PERMISSION_ERROR (HTTP 403)
The token is valid but lacks the permission the operation needs (e.g. calling
Fix: Re-check the permission table on Authentication and re-request App Review for the missing scope, then regenerate the token.
The token is valid but lacks the permission the operation needs (e.g. calling
message.send with a token that never had pages_messaging approved).
Fix: Re-check the permission table on Authentication and re-request App Review for the missing scope, then regenerate the token.
FACEBOOK_VALIDATION_ERROR: "Message exceeds maximum length..."
A text field is over its documented limit — 63,206 chars for a page post, 8,000 for a comment, 4,000 for a Messenger message, 1,024 for a caption/description.
Fix: Truncate or split the content upstream. These limits are enforced locally, before any Graph API call.
A text field is over its documented limit — 63,206 chars for a page post, 8,000 for a comment, 4,000 for a Messenger message, 1,024 for a caption/description.
Fix: Truncate or split the content upstream. These limits are enforced locally, before any Graph API call.
FACEBOOK_VALIDATION_ERROR: "Invalid link URL" / "Invalid image URL" / "Invalid video URL"
The URL failed
Fix: Confirm the value is a complete, absolute URL (
The URL failed
Uri.IsWellFormedUriString(..., UriKind.Absolute) — usually a relative path,
a typo, or a stray leading/trailing space carried over from a form field.
Fix: Confirm the value is a complete, absolute URL (
https://...) with
no surrounding whitespace.
(#100) "Only owners of the URL have the ability to specify the picture..."
This Graph API error appears when
Fix: Leave
This Graph API error appears when
page.post is called with an explicit null/blank
picture field rather than the field being entirely absent.
Fix: Leave
picture/link/caption completely
unset in the node config when not using them — don't pass an empty string. See
Page Operations.
(#100) "valid insights metric required"
Older insights metric names (e.g.
Fix: Leave
Older insights metric names (e.g.
page_impressions, page_engaged_users) were
deprecated and rejected on newer Graph API versions/Pages.
Fix: Leave
metric unset to use this node's current defaults
(page_impressions_unique,page_post_engagements), or supply an up-to-date metric name from
Facebook's current Insights API reference.
FACEBOOK_RATE_LIMIT (HTTP 429)
The node's rate-limit handler already retries automatically (up to 3 attempts, honoring
Fix: Reduce call frequency for this Page/token, especially on polling-style operations (
The node's rate-limit handler already retries automatically (up to 3 attempts, honoring
Retry-After, capped at 60s) before this surfaces — seeing it means the Page is being
throttled harder than that budget covers.
Fix: Reduce call frequency for this Page/token, especially on polling-style operations (
getFeed, getComments, getConversations). Consider
caching results that don't need to be re-fetched every run.
FACEBOOK_TIMEOUT on media uploads
Fix: Host source media on fast, geographically-close storage; for large videos, verify the file size/bitrate against Facebook's own recommended upload limits before retrying.
media.uploadImage/uploadVideo use a 120-second client timeout because Graph
fetches and processes the source file synchronously — a very large or slow-to-fetch video can still
exceed it.
Fix: Host source media on fast, geographically-close storage; for large videos, verify the file size/bitrate against Facebook's own recommended upload limits before retrying.
Messenger send fails with a permission/policy error even though the token is valid
Most commonly this is the 24-hour messaging window — Facebook restricts Page-initiated Messenger replies to within 24 hours of the user's last message, outside an approved message tag.
Fix: Confirm the conversation is still inside the window, or that your app has an approved message tag for the use case. See Message Operations.
Most commonly this is the 24-hour messaging window — Facebook restricts Page-initiated Messenger replies to within 24 hours of the user's last message, outside an approved message tag.
Fix: Confirm the conversation is still inside the window, or that your app has an approved message tag for the use case. See Message Operations.
Retrying a failed write may create a duplicate
Because
Fix: Before blindly retrying a timed-out write, check whether the item already exists (e.g.
Because
page.post, post.comment, message.send,
reactions.add, and the media uploads are all writes (not reads), a
FACEBOOK_TIMEOUT doesn't guarantee the request never reached Graph — it may have succeeded
server-side even though the node never saw the response.
Fix: Before blindly retrying a timed-out write, check whether the item already exists (e.g.
post.getComments for a duplicate comment) rather than resubmitting
automatically in a loop.