Twitter denying API calls

AI-generated summary

In a discussion titled “Twitter denying API calls” under the SSO category, leopedrini reports that Twitter login is failing on their Discourse forum, with users encountering an “An error occurred when starting authorization” message. Logs show a 403 Forbidden error: OAuth::Unauthorized. Despite following the official setup guide and regenerating API keys, the issue persists. rokejulianlockhart suggests the problem may stem from using outdated or unsupported Twitter API authentication methods, a common issue across many Discourse instances. leopedrini shares multiple screenshots of their configuration and error logs, confirming they’ve double-checked settings and credentials. The stack trace from the error log points to middleware handling OAuth failures, indicating the issue occurs during the authentication handshake with Twitter’s API. No resolution is provided in the thread, leaving the user seeking further guidance on correcting the API credentials or updating the authentication flow to comply with Twitter’s current requirements.

Continued from: Twitter login doesn't work on meta

I am facing this issue in my forum too…

Some users reported

Any update?

@leopedrini, it happens in lots of Discourse instances. I’ve found, from discussing with moderators at a few, that it’s usually due to the forum using an unsupported authentication method - usually an old API call that’s been replaced.

The logs show that Twitter is denying my API call so there is probably something wrong with my credentials.

Authentication failure! request_error: OAuth::Unauthorized, 403 Forbidden

But i have followed all instructions here → Configuring X login and rich embeds for Discourse

I don’t know what to do… :frowning:

And in my Forum Settings: (regenerated Keys)

This are the log info:

[db2683] Authentication failure! request_error: OAuth::Unauthorized, 403 Forbidden

/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:51:in `rescue in call'

/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:30:in `call'

rack-2.2.8/lib/rack/tempfile_reaper.rb:15:in `call'

rack-2.2.8/lib/rack/conditional_get.rb:40:in `call'

rack-2.2.8/lib/rack/head.rb:12:in `call'

actionpack-7.0.8/lib/action_dispatch/http/permissions_policy.rb:38:in `call'

/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'

/var/www/discourse/lib/middleware/anonymous_cache.rb:393:in `call'

/var/www/discourse/lib/middleware/gtm_script_nonce_injector.rb:10:in `call'

/var/www/discourse/config/initializers/008-rack-cors.rb:26:in `call'

rack-2.2.8/lib/rack/session/abstract/id.rb:266:in `context'

rack-2.2.8/lib/rack/session/abstract/id.rb:260:in `call'

actionpack-7.0.8/lib/action_dispatch/middleware/cookies.rb:704:in `call'

actionpack-7.0.8/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'

activesupport-7.0.8/lib/active_support/callbacks.rb:99:in `run_callbacks'

actionpack-7.0.8/lib/action_dispatch/middleware/callbacks.rb:26:in `call'

actionpack-7.0.8/lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'

actionpack-7.0.8/lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'

logster-2.16.0/lib/logster/middleware/reporter.rb:40:in `call'

railties-7.0.8/lib/rails/rack/logger.rb:40:in `call_app'

railties-7.0.8/lib/rails/rack/logger.rb:27:in `call'

/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'

/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'

actionpack-7.0.8/lib/action_dispatch/middleware/remote_ip.rb:93:in `call'

actionpack-7.0.8/lib/action_dispatch/middleware/request_id.rb:26:in `call'

/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call'

/var/www/discourse/plugins/z-communiteq-features/plugin.rb:142:in `call'

rack-2.2.8/lib/rack/method_override.rb:24:in `call'

rack-2.2.8/lib/rack/sendfile.rb:110:in `call'

actionpack-7.0.8/lib/action_dispatch/middleware/host_authorization.rb:131:in `call'

rack-mini-profiler-3.3.0/lib/mini_profiler.rb:191:in `call'

message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call'

/var/www/discourse/lib/middleware/request_tracker.rb:236:in `call'

rails_multisite-5.0.0/lib/rails_multisite/middleware.rb:26:in `call'

/var/www/discourse/plugins/z-communiteq-features/plugin.rb:168:in `call'

railties-7.0.8/lib/rails/engine.rb:530:in `call'

railties-7.0.8/lib/rails/railtie.rb:226:in `public_send'

railties-7.0.8/lib/rails/railtie.rb:226:in `method_missing'

rack-2.2.8/lib/rack/urlmap.rb:74:in `block in call'

rack-2.2.8/lib/rack/urlmap.rb:58:in `each'

rack-2.2.8/lib/rack/urlmap.rb:58:in `call'

unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'

unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'

unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'

unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'

unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'

/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'

/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'