I'm running tomography job like I have done many times before. I send the job, and the job.status() is 'DONE'. But when I ask for job.results() I get the following traceback.

I'm using version 0.18.0.

KeyError                                  Traceback (most recent call last)
/anaconda3/envs/quantum/lib/python3.7/site-packages/qiskit/providers/ibmq/api/clients/account.py in job_result(self, job_id, use_object_storage)
    245         try:
--> 246             return self.job_get(job_id)['qObjectResult']
    247         except KeyError as err:

KeyError: 'qObjectResult'

The above exception was the direct cause of the following exception:

ApiIBMQProtocolError                      Traceback (most recent call last)
/anaconda3/envs/quantum/lib/python3.7/site-packages/qiskit/providers/ibmq/job/ibmqjob.py in _retrieve_result(self, refresh)
    675             try:
--> 676                 result_response = self._api.job_result(self.job_id(), self._use_object_storage)
    677                 self._result = Result.from_dict(result_response)

/anaconda3/envs/quantum/lib/python3.7/site-packages/qiskit/providers/ibmq/api/clients/account.py in job_result(self, job_id, use_object_storage)
    248             raise ApiIBMQProtocolError(
--> 249                 'Unexpected return value received from the server: {}'.format(str(err))) from err

ApiIBMQProtocolError: "Unexpected return value received from the server: 'qObjectResult'"

The above exception was the direct cause of the following exception:

IBMQJobApiError                           Traceback (most recent call last)
<ipython-input-50-0a8321076fbb> in <module>
----> 1 experimental_state = StateTomographyFitter(best_full_tomography_job.result(), best_full_tomography_transpiled).fit()
      2 plot_state_hinton(experimental_state)

/anaconda3/envs/quantum/lib/python3.7/site-packages/qiskit/providers/ibmq/job/ibmqjob.py in result(self, timeout, wait, partial, refresh)
    253                     'Use job.error_message() to get more details.'.format(self.job_id()))
--> 255         return self._retrieve_result(refresh=refresh)
    257     def cancel(self) -> bool:

/anaconda3/envs/quantum/lib/python3.7/site-packages/qiskit/providers/ibmq/job/ibmqjob.py in _retrieve_result(self, refresh)
    687                 raise IBMQJobApiError(
    688                     'Unable to retrieve result for '
--> 689                     'job {}: {}'.format(self.job_id(), str(err))) from err
    690             finally:
    691                 # In case partial results are returned or job failure, an error message is cached.

IBMQJobApiError: 'Unable to retrieve result for job 5e984c5e6ad41d00184b12c1: "Unexpected return value received from the server: \'qObjectResult\'"'

What does it mean, and what went


I now see that when I retrieve a previously ran job, I get a warning message:

/anaconda3/envs/quantum/lib/python3.7/site-packages/qiskit/qobj/qasm_qobj.py:497: DeprecationWarning: qiskit.qobj.Qobj is deprecated use either QasmQobj or PulseQobj depending on your application instead.
  experiments=experiments, header=header)
  • $\begingroup$ Hi :) What qiskit versions are you using? $\endgroup$
    – met927
    Apr 16, 2020 at 13:22
  • $\begingroup$ qiskit 0.11.0, I haven't updated in a while $\endgroup$
    – Andrea
    Apr 16, 2020 at 13:43
  • $\begingroup$ I have updated to 0.18.0 and I get a longer traceback. I'll update the question. $\endgroup$
    – Andrea
    Apr 16, 2020 at 13:53
  • $\begingroup$ nice! What version of qiskit-ibmq-provider do you have? $\endgroup$
    – met927
    Apr 16, 2020 at 14:11
  • $\begingroup$ i've got qiskit-ibmq-provider 0.6.0 $\endgroup$
    – Andrea
    Apr 16, 2020 at 14:17


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.