Bad Request API resultDownloadUrl: Cannot get presigned download url
See original GitHub issueInformation
-
Qiskit IBMQ Provider version: 0.17.0 (Python)
-
API URL or version:
https://api.quantum-computing.ibm.com/api/Network/ibm-q/Groups/open/Projects/main/Jobs/<job number>/resultDownloadUrl
-
Python version: 3.6
-
Operating system: Ubuntu Linux
What is the current behavior?
qiskit.providers.ibmq.job.exceptions.IBMQJobApiError: "Unable to retrieve result for job <job number>: '400 Client Error: Bad Request for url: https://api.quantum-computing.ibm.com/api/Network/ibm-q/Groups/open/Projects/main/Jobs/<job number>/resultDownloadUrl. Cannot get presigned download url., Error code: 3202
Steps to reproduce the problem
The issue only occurs when running on a real device (not a simulator). Code has worked fine in the past (prior to version 0.17.0 being released). Running code from here:
IBMQ.load_account()
provider = IBMQ.get_provider(hub='ibm-q')
small_devices = provider.backends(filters=lambda x: x.configuration().n_qubits == 5 and not x.configuration().simulator)
least_busy_device = least_busy(small_devices)
job_sim = execute(self._quantum_game.circ, least_busy_device, shots=n_times)
res_sim = job_sim.result()
counts = res_sim.get_counts(self._quantum_game.circ)
The error occurs after execute() and before .result()
What is the expected behavior?
Circuit to execute fully and results of run become available.
Suggested solutions
Issue Analytics
- State:
- Created 3 years ago
- Reactions:1
- Comments:5 (1 by maintainers)
Top GitHub Comments
This is now fixed. Thanks @desireevl for reporting it!
This problem is due to erroneous response sent by the server through the websocket connection, which is used by
job.result()
to wait for the job to finish. As a temporary workaround, you can manually poll for the job status, bypassing websocket:“Temporary” is highlighted because using
job.status()
to poll is generally not recommended as it could cause the server to deny your request due to excessive requests.