rigetti / rigetti/qcs-api-client-rust
[Feature Request] Add Retry to `translate` when using the `QCtrl` integration
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!
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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