Patreon webhooks failing

I wonder if @Falco or anyone else could help.

I recently started using Patreon and I’ve set up a Discourse server in a Digital Ocean Droplet. I also installed the discourse-patreon plugin and entered all the keys etc. following this tutorial. I’m able to click the Update Patreon Data & Sync Groups button on the Plugin > Patreon > Filters page, and this works fine. All of my tiers are available and I’ve assigned all of them to Discourse Groups etc.

All seemed fine, but then I received an email from the Patreon servers telling me:
We’re writing to let you know that a WebHook POST to https://discourse.martinbaileyphotography.com/patreon/webhook has failed. As a result we’ve paused on sending more events to your URL.

I have tried setting up the client with both API 1 as specified in this post and API 2 changing the keys and secrets accordingly each time, and trying the top three deprecated events and the bottom six with both APIs, and I cannot find a combination that works.

In my Discourse logs, I’ve found this error message:
(patreon) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected

I’ve asked Digital Ocean and they do not block POST requests and can’t think of any reason with their system why this would not work, so I’m stumped. I can’t find any useful information to help me fix this, so I’m now posting here (and in the Patreon forum) in the hope that this rings a bell with someone. Can anyone offer any advice on either how to fix this or what to check in order to troubleshoot this issue further.

Thanks in advance for any help anyone can provide!

Regards,
Martin Bailey.

2 Likes

When configuring webhooks you should only enable the deprecated ones as explained in Configuring Patreon integration with Discourse and configure the secret in site settings.

If they still fail, it may be a problem on the Patreon side. Can you ask their support for detailed logs for the failures?

2 Likes

Thanks @Falco,
I’ll ask them. They already told me they don’t provide support for the API, which is a shame. I didn’t realize that Patreon is a crippled company when I started this.

OK, so I’ll use the deprecated options. Should I use an API v1,webhook too? I tried both originally but haven’t tried for a few weeks now.

Thanks for your help.

4 Likes

Yes, use the v1 version please.

3 Likes

Thanks, @Falco I just switched everything back and changed all the API keys and secrets. The

The Manual Test is returning Status code 200 though, so the calls are getting through. I also noticed when I checked the Discourse / Patreon plugin this morning that the data was showing as having synched 5 hours ago. I was in bed five hours ago, so something is happening, but I still see the red Webhook Paused message, and the Resume button results in another error clocking up.

Anyway, I’ll request the detailed logs from the Patreon team and see what they say.

Thanks again for your help.

2 Likes

Hi @Falco,

So I found a reply from Patreon Support in my overloaded inbox, and they simply say that they cannot provide the logs. I also see that they closed their community support forum.

I’m still seeing these errors, although some synching is working, because I see messages that show the system synched while I was asleep, but new Patreons are still not being automatically added when they make a contribution. I’m working around that by creating invites that include access to various categories according to the new patron’s tier, but I have to send these manually, so it’s not very smooth. I’m also concerned that people who stop contributing will probably not be removed from my Discourse community, and while I still only have a small number of patrons and could check, if I start to get some good participation as I push my Patreon program, I will probably lose touch with this and things will get out of whack.

Anyway, I know if not your problem as such, but I’m really disappointed that Patreon are providing zero support for these integrations, despite using them in their marketing to get people to start using their system.

Regards,
Martin.

The webhook support make the sync react to changes faster, but the plugin will work 100% without it. We will do a full sync every 6 hours and capture any new patrons, as well as remove access for patrons who are gone. So you don’t have to worry about stuff like that.

For what’s worth it, this plugin was 100% created by us at Discourse without support from Patreon, so we are able to keep it working as long as their API exists.

1 Like