Don't understand "(#4) User request limit reached"

Mike Lambert picture Mike Lambert · Jan 2, 2012 · Viewed 15.3k times · Source
{
   "error": {
      "message": "(#4) User request limit reached",
      "type": "OAuthException"
   }
}

I'm not sure the cause of this error, and yes I've done lots of searching around for similar user's problems (they are error #17, or app limit reached). And I'm doing this on regular graph API calls (such as https://graph.facebook.com/me ), not necessarily FQL like others have run into.

User request limit reached makes it seem like a per-user limit, but according to http://www.fb-developers.info/tech/fb_dev/faq/general/gen_10.php , #4 is "Application request limit reached" and #17 is "User request limit reached".

I don't believe there's anyway I'm hitting the 100M/day app limit. And I only get it for a couple users' auth tokens, so it's not an app-wide error message I'm getting. And when I request too quickly, I usually get FQL_EC_RATE_LIMIT_EXCEEDED.

But for those two users with the above error "(#4) User request limit reached", I've temporarily blacklisted them from loading data, but yet they still get the above error when I try to access using that auth token a day later.

So in conclusion...

I don't understand how I can get "(#4) User request limit reached" when the auth-token for that user is not being used for any queries in a 24-hour period prior. And I don't know what is special about these users.

Any advice or suggestions would be greatly appreciated. It was only one user a few days ago, but today a second user started running into this problem, and I'm worried the problem will just get worse in the future with no clear resolution.

Answer

Tim Tisdall picture Tim Tisdall · Jan 25, 2012

Here is a list of error codes: http://fbdevwiki.com/wiki/Error_codes

#4 means you've made too many API requests. There are limits on how many your application can make given a certain amount of time. There are also limits based on each user. If you wait for a while the error should clear and allow you to make requests again.

The error codes are a throwback from older API's so it's possible they just combined #4 and #17 to always just return #4.

Also, the limits are not fixed such as "100M/day". Go to Insights for your application and look under Diagnostics. It will show you what requests are causing that error. The limits vary from day to day and I think are related to how much other traffic there is.