I'm encountering a 403 error when using the Facebook Graph API node in n8n to send Instagram DMs, due to missing instagram_manage_messages permission and recipient role restrictions

Hi everyone :waving_hand:,

I’m currently building a workflow in n8n that sends automated Instagram DMs using the Facebook Graph API node, but I’ve hit a roadblock with the following error:

(#200) App does not have Advanced Access to instagram_manage_messages permission and recipient user does not have role on app.

:magnifying_glass_tilted_left: What I’ve Confirmed So Far:

  • The app is connected to a Facebook Page that’s linked to an Instagram Business Account.

  • I’m using the /me/messages endpoint with the correct recipient.id (PSID).

  • The Facebook Graph API node is configured correctly and works for Messenger.

  • The recipient is a real Instagram user, not assigned any role on the app.

:prohibited: The Problem:

  • The instagram_manage_messages permission seems to require Advanced Access, but there’s no button to request it in the App Dashboard.

  • Meta’s documentation is vague, and the error suggests that only users with app roles (Admin, Developer, Tester) can be messaged unless the app has full permission access.

:light_bulb: What I’m Looking For:

  • Has anyone successfully enabled instagram_manage_messages for production use?

  • Is there a workaround to message real users without assigning them app roles?

  • Any insight on how to trigger the “Advanced Access” request option for this permission?

More Details,

Node: Facebook Graph API

Host URL: Default

HTTP Request Method: POST

Graph API Version: v23.0

Node: me/messages

Edge: empty

Options > Query Parameters:

Name: reoipient Value: {{ $(‘Extract Data’).item.json.senderId }}

Name: message Value: {{ $json.response }}

  1. n8n Version: 1.105.3 (Self Hosted)

Error Log:

{
“errorMessage”: “Forbidden - perhaps check your credentials?”,
“errorDescription”: “(#200) App does not have Advanced Access to instagram_manage_messages permission and recipient user does not have role on app.”,
“errorDetails”: {
“rawErrorMessage”: [
“403 - {“error”:{“message”:“(#200) App does not have Advanced Access to instagram_manage_messages permission and recipient user does not have role on app.”,“type”:“OAuthException”,“code”:200,“error_subcode”:2534048,“fbtrace_id”:“Axa2Xy3wx1yJhaWy4Ix5vJ5”}}”
],
“httpCode”: “403”
},
“n8nDetails”: {
“nodeName”: “Facebook Graph API”,
“nodeType”: “n8n-nodes-base.facebookGraphApi”,
“nodeVersion”: 1,
“time”: “8/8/2025, 6:10:55 PM”,
“n8nVersion”: “1.105.3 (Self Hosted)”,
“binaryDataMode”: “default”,
“stackTrace”: [
“NodeApiError: Forbidden - perhaps check your credentials?”,
" at ExecuteContext.execute (C:\Users\Rao\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-nodes-base\nodes\Facebook\FacebookGraphApi.node.ts:439:12)“,
" at processTicksAndRejections (node:internal/process/task_queues:105:5)”,
" at WorkflowExecute.runNode (C:\Users\Rao\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:1212:9)“,
" at C:\Users\Rao\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:1582:27”,
" at C:\Users\Rao\AppData\Roaming\npm\node_modules\n8n\node_modules\n8n-core\src\execution-engine\workflow-execute.ts:2158:11"
]
}
}

2 Likes

I’m having the same issue here. I suppose we’ll have to go through the painful requests for Advanced Access where we have to upload a description and a screencast of our App for each function we want to unlock full access to… That totally sucks. Especially because when I try to add a test user it says that the adding Test Users function is temporarily unavailable, so I can’t simulate an interaction via N8N to record in the screencast and show Meta how do I intend my App to work.

1 Like

Actually I have the same issue at the moment although
I used to have this automation fully functional. I am not sure if the advanced access can solve the issue as i understand you will never take advanced access if the automation that you are building is not fully functional with a test user.
By the way when you have the message of temporarily unavailable in meta developers pages
it helps to clear cookies and refresh the page most of the time that solves this issue to me

Hopefully someone will find a solution on that and will be kind enough to post it :slight_smile:

Hi everyone. I don’t know if you managed to solve the problem. I was having the same issue using the Facebook Graph node. My solution was to make an HTTP call to the endpoint: https://graph.instagram.com/v24.0/{{ $json.body.entry[0].messaging[0].recipient.id }}/messages. That worked.