Portal Community
MISSING_ACCESS_TOKEN
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).
FACEBOOK_PERMISSION_ERROR (HTTP 403)
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.
FACEBOOK_VALIDATION_ERROR: "Invalid link URL" / "Invalid image URL" / "Invalid video 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 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. 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 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
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.
Retrying a failed write may create a duplicate
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.