Troubleshooting
Last updated
Last updated
By default, quilc
may change the qubits used in your program to fit the topological constraints of the quantum processor the program is being compiled for. This process is called "rewiring" and the default strategy tries to maximize for fidelity. If this is undesirable, a different rewiring strategy can be configured by including a special PRAGMA
instruction in your program. See for more details.
This means that the QCS QPU Gatewayis unavailable for the target QPU. This is usually due to a service interruption, but if you are in an environment that has direct access to a QPU endpoint (like JupyterHub), you can use the "Direct Access" connection strategy to effectively bypass the Gateway and avoid the error. How you do this depends on your client library:
pyQuil: QCS Gateway and execution options.
qcs-sdk-rust: ExecutionOptions
RegisterMatrixConversionError
This means that your program generated non-rectangular readout data. This is usually due to your program using features like mid-circuit measurement or dynamic control flow. See for more details on why and how to navigate so you can build a structure tailored to your program's intent. See your client library documentation for how to access raw readout data:
pyQuil: Accessing raw execution data
Credentials are needed to authenticate all requests to the QCS API and this error indicates that they are missing or have been configured incorrectly. Follow the instructions in QCS Credentials for your environment of choice to get a valid set of credentials.
This could be a problem with the size of your program, quilc
, , or an issue connecting to the QCS API. Before proceeding, be sure to get a diagnostics report per the instructions in Gathering Diagnostics. We can use this report to identify where connection problems are happening, if at all.
quilc
or QVM
If none of these solutions work, please Report an Issue and include a copy of the diagnostics report you gathered.
If a successful connection can be made to each service you are using, then the problem may come down to the size of your program and the timeouts used to compile and/or execute them. Try compiling a trivial program that uses only one qubit. If a small program works, then try your original program with a longer compiler and execution timeout. How this is configured depends on your client library:
pyQuil: get_qc parameters
qcs-sdk-rust: Compiler options, QVM options, and execution options
If you submit a job and get an error message that links you here and/or says:
The engagements API is deprecated and does not support the requested QPU. This likely means you are using an out-of-date client and should upgrade to the latest major version.
Then you are likely using an old version of a client library that is not supported for execution against the requested Rigetti QPU. You should upgrade your client library to the most recent version to get the latest features and to be able to execute against current QPUs. As a general rule, it's a good idea to keep your client library up-to-date as much as possible to get the latest features and fixes. Here are some potential upgrade paths:
pyQuil v3: Upgrade to the latest available version. Read through Introducing pyQuil v4 for a guide to the major changes made in v4 and the 4.0.0 entry in the changelog for a comprehensive list of every breaking change.
qcs-api-client-python
: Remove any calls to the Engagements API and consider migrating to qcs-sdk-python or pyQuil for executing jobs.
If the report says that quilc
(and/or QVM, if using) is not available, then make sure it is running in server mode per the instructions in .
If a connection can't be made to the QCS API, first check the Rigetti status page to make sure there are no ongoing incidents. If there are, please wait until we can resolve the issue. Otherwise, make sure your credentials are up-to-date by either Using the QCS CLI, by logging in to QCS and following these instructions to refresh your credentials, or by stopping and starting your JupyterLab server per the instructions in .