Arclink requests exceeded

Dear all,

I am using a script built around the Arclink implementation to download 24h long data pieces for several stations from EIDA. Basically I run a loop through a list of stations and a set of days for which I want the data and for each station/day combination I execute the .get_waveforms() function.

It generally works well, however, sometimes I run into the following issue, which I do not fully understand:

error:
‘max_status_requests () exceeded - breaking current request loop’

I am no expert on how the Arclink protocol works … could please someone explain the meaning of this error message? Does it mean the “compiling” of the data for download on EIDA side takes too long? Do I fire too many download requests in too short amount of time?

Thanks a lot and best regards,
Florian Fuchs

Hi Florian,

when doing a request to the server, the arclink client periodically
(roughly every "status_delay" seconds) checks if the query results are
ready at the server, but it stops when hitting "max_status_requests".

By default this is set to 50 requests, every 0.5 seconds, so it roughly
stops if query results are not ready after roughly 25 seconds.

You can either set a higher max_status_requests..

client = Client(...)
client.max_status_requests = 200

.. or increase the poll interval:

client = Client(..., status_delay=1.5)

See the respective while/break loop in the source code for details:

https://github.com/obspy/obspy/blob/1.0.3/obspy/clients/arclink/client.py#L295-L313

hope it helps,

T

Thank you Tobias for the quick reply. I’ll try what you suggest and see if it helps.

Best,
Florian