Open JimmyRoth opened 4 years ago
@JimmyRoth I've solved this issue on my server. I had several threads making calls to the ESI server and each of them would "sleep" to slow down the number of requests. As it turns out this was the problem.
The requests were finishing, but my code wasn't completing, so the requests were bottling up on the server, and it appears that too many calls were happening at once. I solved the issue, rather than sleep for a 1/10th of a second, by sleeping for 1/1000th a second 100 times and allowing the requests to "tick" between those sleeps(I use PHP's Guzzler). With many calls happening you could inadvertently have too many requests in flight, causing the 429 throttling error.
If you're not using a language that can async/await properly, this may be similar to your issue. Something to look into.
@JimmyRoth Can you confirm that you aren't experiencing the situation outlined by @cvweiss?
enhance your calm
and backoff requests a bit. To be perfectly honest, I suspect that it's quite possible that part of the reason you are hitting those because of other errors on our side. Please report them, we promise to find bandwidth to fix them.
@mateuszkrasucki We aren't given a good message to report back, should we report the timestamp, url, etc?
Is there a limit to the number of requests that can reach the game server per minute? Before I drastically reduced the number of calls my code makes, I've noticed that the error occurs between the :35 and :45 second marks within a minute (without errors) extremely consistently, so I must be hitting some sort of rate limiting to the number of calls per minute. In the next minute, at :00 second mark, I stop receiving the 500 errors.
@cvweiss As pointed out, there's no limit to number of calls you're making. There's a limit to number of errors you're causing at the game server level, and it's 10 (not 100 as with ESI's error rate limiter that headers refer to). ^ I believe that this weird :35 - :45 second mark for 500s to start to occur is just because of you hitting that error level. This can be confirmed if you check and confirm that 500s that you're getting are the ones with "429 (...)" message.
This is also valid for the following endpoints :
Bug
When requesting a character ID, or Alliance ID endpoint, I receive an unexpected 500 error, stating I have been throttled. However, X-Esi-Error-Limit-Remain claims I have 99 errors left. More request samples available upon request.
Request
GET /latest/alliances/822344869/?datasource=tranquility&language=en-us
Response
Status Code
500
Headers
Body
Please provide the response body, feel free to scrub any opsec details you wish. E.g.:
Expected
200
Checklist
Check all boxes that apply to this issue: