rigetti / rigetti/qcs-api-client-rust

[Feature Request] Add Retry to `translate` when using the `QCtrl` integration

Open
#9 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
3
Forks
2
PR merge metrics
No merged PRs in 30d

Description

We've been testing the qcs client internally with the QCtrl flag enabled and noticed some timeouts when attempting to call translate on some large, iterative QAOA workloads. We've monitored our production logs here at Q-CTRL when running these tasks, and noticed that the compilation tasks are being handled correctly. They do take a while since this is a large circuit thats quite deep. Average compilation task time is ~50 seconds.

The client's translate call is timing out with the following error:

  File "/home/ssm-user/src/research-qccf-finance-optimization/qctrlQCCFresearchtools/platforms/rigetti_platform.py", line 159, in run
    executable = translate(
                 ^^^^^^^^^^
translation.TranslationError: Call failed during gRPC request: status: Unavailable, message: "unavailable", details: [], metadata: MetadataMap { headers: {"server": "awselb/2.0", "date": "Mon, 09 Jun 2025 18:27:52 GMT", "content-type": "application/grpc", "content-length": "0"} }

@erichulburd mentioned to us that a good possible solution here would be to have a retry around these translate calls. Possibly we could even have exposed timeout settings in the TranslationOptions? I know the submit function has similar settings available through the ExecutionOptions.

Attached is a full log from one of our QAOA runs with Rust debug logging enabled. Happy to help in anyway to get this implemented!

rigetti_output.log

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the Rust translate call and comparing its behavior with submit and the existing ExecutionOptions settings. Check how TranslationOptions is defined and determine the expected retry and timeout behavior; the work is done when long-running QCtrl translations no longer fail from the reported transient timeout and the settings are documented or tested.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.