Programatically get request status - error with new cdsapi

Hi!

I used to be able to programatically check the update of a request using this:

  reply = dict(request_id=df.iloc[i]['r']) # Get ID
  new_client = cdsapi.Client(wait_until_complete=False, delete=False)
  result = cdsapi.api.Result(new_client, reply)
  result.update()
  reply = result.reply

After updating to the new cdsapi, result.update() returns:

HTTPError: 404 Client Error: Not Found for url: https://cds.climate.copernicus.eu/api/tasks/2fbb3fcc-e2d9-47c7-aef0-0c9a6a143402

Am I doing something wrong or is the cdsapi still requires updating?

3 Likes

I am also facing Same issue here

Any news here ?.. I also have this issue with the same code :face_with_diagonal_mouth:

Finally found a solution here : Get request status · Issue #94 · ecmwf-projects/cads-api-client · GitHub

So for the record I just replaced:

reply = dict(request_id=df.iloc[i]['r']) 
new_client = cdsapi.Client(wait_until_complete=False, delete=False)
result = cdsapi.api.Result(new_client, reply)

by:

new_client = cdsapi.Client(wait_until_complete=False, delete=False)  # no change here
result = new_client.client.get_remote(request_id) 

Note that it may not be very stable… I’m not sure to understand how all these libs (cdsapi, cads-api-client, datapi) are working together.