Twitter/X OAuth2 posts the tweet successfully but n8n still returns 403 “Forbidden” in Create Tweet node

Hi everyone,
I’m integrating the X (Twitter) OAuth2 API inside n8n, and I’m running into a strange issue.

What’s happening

  • I successfully created an app on developer.twitter.com.

  • I added the Client ID, Client Secret, and the OAuth2 callback URL from n8n.

  • Authentication works fine — n8n connects without errors.

  • When I run the Create Tweet node, the tweet actually posts on X, exactly as expected.

  • But n8n still returns this error:

Problem in node “Create Tweet”
403 Forbidden — perhaps check your credentials?

Why this is confusing

Even though n8n throws a 403, the tweet is already published on Twitter, meaning the API request clearly worked.
So the error n8n receives does not match the outcome on Twitter’s side.

What I’ve already checked

  • OAuth2 scopes are correctly enabled.

  • App permissions set to Read + Write.

  • Callback URL matches exactly.

  • All tokens freshly regenerated and reconnected in n8n.

  • Using the official built-in X OAuth2 API credential type.

  • Using the standard Create Tweet node, not a custom API call.

Additional detail

n8n is asking only for OAuth2.
There is no built-in option for OAuth1 in the current UI, so I cannot switch to the classic Twitter Auth1 workflow.

My main question

Why would n8n receive a 403 Forbidden response even though the tweet is posted successfully, and how can I resolve this mismatch?

If anyone has encountered this with Twitter’s new API behavior or has advice on debugging the n8n response-handling here, I’d appreciate your insight.

Thanks!

1 Like

I’m dealing with the same problem, and I still don’t know how to fix it.