Suddenly {"error": "invalid_grant"} is all that is returned , getting reports from new users can't access benefits

I am building a app that calls Patreon through a V2 app API to ensure benefits are granted to paying members. However just today/yesterday no longer can new users unlock paid features,

I believe members who have logged in already can still access features using the token stored from earlier, but all new users are now getting blocked. Even myself after clearing the saved login and trying to authenticate with patron again I now get only {“error”: “invalid_grant”}

I have made no changes to my app, even the previous version has completely stopped working, but all have been working for months without issue, except today now I can’t even log in to my app,

I even created new API and keys and tried using that in the app , but same result. So it’s not expired token… This is extremely urgent and I don’t know what to do , everything just suddenly stopped,

please help me!!!

This is the URL to the new “test” app I created:

https://www.patreon.com/oauth2/authorize?response_type=code&client_id=EkDPn3eLYTgm3HQw9ySn1PIWqVVbDdG8i7btezX_6xSWi8X8ugrt7gtpetNQ2q5P&redirect_uri=http://localhost:8082/&scope=identity%20identity%5Bemail%5D

It generates the exact same {“error”: “invalid_grant”} response, but this same pattern used to work just the other day.

Can someone please help me? I don’t know who to contact to ask why the database is not responding anymore. Is there a tech support email I can use ? Or anything? My app is completely broken right now and I don’t know what to do anymore

Try to confirm that your app does not fail because a state= parameter is not present in the URL returned to it before using the authorization code. Your app should take into account only the code parameter in the URL to get the access token. The state variable is for your internal use and it should be used to do whatever you want to do with it if it is present.

I just re-read the docs API Reference and I believe the header is correct,

I even tried adding the Client Secret token string to the Client_Secret field directly, but still the returned data was {“error”: “invalid_grant”}

I feel like a moron, yet am perplexed why this worked in the first place, anyway after alot of reading I realized I was using scope where I should have been using state ??

From:
https://www.patreon.com/oauth2/authorize?response_type=code&client_id=EkDPn3eLYTgm3HQw9ySn1PIWqVVbDdG8i7btezX_6xSWi8X8ugrt7gtpetNQ2q5P&redirect_uri=http://localhost:8082/&scope=identity%20identity%5Bemail%5D

To:

https://www.patreon.com/oauth2/authorize?response_type=code&client_id=EkDPn3eLYTgm3HQw9ySn1PIWqVVbDdG8i7btezX_6xSWi8X8ugrt7gtpetNQ2q5P&redirect_uri=http://localhost:8082/&state=identity%20identity%5Bemail%5D

And now the app is working again.

Is using state= for accessing identity and identity[email] correct? Why did using scope= work before?