Ask or search…


Why does quilc change the qubits used in my program?

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 Rewiring for more details.

I get an "Accessor not found" error when I try to run a job

This means that the QCS 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:

I tried to access the readout data for my job and got a 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 QPU Readout Data for more details on why and how to navigateRaw QPU Readout Data so you can build a structure tailored to your program's intent. See your client library documentation for how to access raw readout data:

I get an error that says "No refresh token is configured within selected QCS credential"

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.

My program is timing out or my script hangs until I cancel it

This could be a problem with the size of your program, quilc, qvm, 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.

A connection cannot be made to quilc or QVM

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 Start the Compiler and QVM.

A connection cannot be made to the QCS API

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 Stop Or Change Your Server.
If none of these solutions work, please Report an Issue and include a copy of the diagnostics report you gathered.

A successful connection can be made to all required services but my program still times out

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:

I got an error that mentioned the Engagements API was deprecated

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.