Page MenuHomePhabricator

Hitting a rate limit trying to execute function relying on Wikidata statements
Open, HighPublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

  • Go to https://www.wikifunctions.org/w/index.php?title=Z33244.
  • Input L1560487 as the lexeme reference.
  • Choose a language (I was using English).
  • Run the function.
  • Run the function again and again using the language you previously chose till you can reproduce the error. (I was trying to test the implementation as I worked on it so my attempts to execute the function were actually fairly spaced out.)
  • Run the function in the same way but for a different language and notice there is no error.

What happens?:
I get this error because Z6925 fails:

Malformed result from haswbstatement search (value <Q146233>, property ID <P5137>): <{"error":{"code":"cirrussearch-too-busy-error","info":"Search is currently too busy. Please try again later.","docref":"See https://www.wikidata.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at &lt;https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/&gt; for notice of API deprecations and breaking changes."},"servedby":"mw-wikifunctions.eqiad.group2-7c785988dc-fjtn5"}>

What should have happened instead?:
Well, I was not expecting to hit a rate limit that easily, or come back after eight hours and still get the same error.

Event Timeline

Redmin updated the task description. (Show Details)
Redmin updated the task description. (Show Details)

The API limits, including search-for-the-related-QIDs-for-this-Lexeme, are indeed rate limited. I'm not sure what we can do about it if you search multiple times.

I understand it’s rate-limited but should I really be hitting the limit after more than an (or eight(!)) hour(s)? If so, perhaps it would be possible to distinguish between requests originating from Wikifunctions?

I understand it’s rate-limited but should I really be hitting the limit after more than an (or eight(!)) hour(s)? If so, perhaps it would be possible to distinguish between requests originating from Wikifunctions?

You're not being blocked personally, you're triggering the whole of Wikifunctions's ability to get Wikidata items to be blocked, I think. :-(