Why does quilc change the qubits used in my program?

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

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:

I tried to access the readout data for my job and got a RegisterMatrixConversionError

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, , 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

A connection cannot be made to the QCS API

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.

Last updated