diff --git a/qiskit_ibm/api/clients/base.py b/qiskit_ibm/api/clients/base.py index a8c45cae2..ff9c128fb 100644 --- a/qiskit_ibm/api/clients/base.py +++ b/qiskit_ibm/api/clients/base.py @@ -175,7 +175,7 @@ def stream( logger.debug('Starting new websocket connection: %s using proxy %s', url, self._proxy_params) self._reset_state() - self._ws.run_forever(**self._proxy_params) + self._ws.run_forever(ping_interval=60, ping_timeout=10, **self._proxy_params) self.connected = False logger.debug("Websocket run_forever finished.") diff --git a/releasenotes/notes/fix-websocket-connection-drop-3892e313554e99df.yaml b/releasenotes/notes/fix-websocket-connection-drop-3892e313554e99df.yaml new file mode 100644 index 000000000..81ce82f86 --- /dev/null +++ b/releasenotes/notes/fix-websocket-connection-drop-3892e313554e99df.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixes `#209 `__ where the websocket + connection kept timing out when streaming results for a runtime job, due to inactivity, + when the job is in a pending state for a long time. diff --git a/test/ibm/runtime/test_runtime_integration.py b/test/ibm/runtime/test_runtime_integration.py index 351186c69..1aefc335d 100644 --- a/test/ibm/runtime/test_runtime_integration.py +++ b/test/ibm/runtime/test_runtime_integration.py @@ -506,8 +506,6 @@ def result_callback(job_id, interim_result): callback_err = [] iterations = 3 job = self._run_program(iterations=iterations, interim_results=int_res) - - self._wait_for_status(job, JobStatus.RUNNING) job.stream_results(result_callback) job.wait_for_final_state() self.assertEqual(iterations-1, final_it)