---
title: exceptions (v1.0)
description: API reference for qiskit.exceptions in qiskit v1.0
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/1.0/exceptions
---

# Top-level exceptions

`qiskit.exceptions`

## Exceptions

All Qiskit-related exceptions raised by Qiskit are subclasses of the base:

### QiskitError

*exception* `qiskit.exceptions.QiskitError(*message)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.0/qiskit/exceptions.py#L92-L102)

Base class for errors raised by Qiskit.

Set the error message.

> **Note**
>
> Errors that are just general programming errors, such as incorrect typing, may still raise standard Python errors such as `TypeError`. [`QiskitError`](#qiskit.exceptions.QiskitError "qiskit.exceptions.QiskitError") is generally for errors raised in usage that is particular to Qiskit.

Many of the Qiskit subpackages define their own more granular error, to help in catching only the subset of errors you care about. For example, [`qiskit.circuit`](/docs/api/qiskit/1.0/circuit#module-qiskit.circuit "qiskit.circuit") almost exclusively uses [`CircuitError`](/docs/api/qiskit/1.0/circuit#qiskit.circuit.CircuitError "qiskit.circuit.CircuitError"), while both [`QASM2ExportError`](/docs/api/qiskit/1.0/qasm2#qiskit.qasm2.QASM2ExportError "qiskit.qasm2.QASM2ExportError") and [`QASM2ParseError`](/docs/api/qiskit/1.0/qasm2#qiskit.qasm2.QASM2ParseError "qiskit.qasm2.QASM2ParseError") derive from [`QASM2Error`](/docs/api/qiskit/1.0/qasm2#qiskit.qasm2.QASM2Error "qiskit.qasm2.QASM2Error") in [`qiskit.qasm2`](/docs/api/qiskit/1.0/qasm2#module-qiskit.qasm2 "qiskit.qasm2"), which is in turn a type of [`QiskitError`](#qiskit.exceptions.QiskitError "qiskit.exceptions.QiskitError").

Qiskit has several optional features that depend on other packages that are not required for a minimal install. You can read more about those, and ways to check for their presence, in [`qiskit.utils.optionals`](/docs/api/qiskit/1.0/utils#module-qiskit.utils.optionals "qiskit.utils.optionals"). Trying to use a feature that requires an optional extra will raise a particular error, which subclasses both [`QiskitError`](#qiskit.exceptions.QiskitError "qiskit.exceptions.QiskitError") and the Python built-in `ImportError`.

### MissingOptionalLibraryError

*exception* `qiskit.exceptions.MissingOptionalLibraryError(libname, name, pip_install=None, msg=None)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.0/qiskit/exceptions.py#L111-L135)

Raised when an optional library is missing.

Set the error message. :param libname: Name of missing library :param name: Name of class, function, module that uses this library :param pip\_install: pip install command, if any :param msg: Descriptive message, if any

Two more uncommon errors relate to failures in reading user-configuration files, or specifying a filename that cannot be used:

### QiskitUserConfigError

*exception* `qiskit.exceptions.QiskitUserConfigError(*message)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.0/qiskit/exceptions.py#L105-L108)

Raised when an error is encountered reading a user config file.

Set the error message.

### InvalidFileError

*exception* `qiskit.exceptions.InvalidFileError(*message)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.0/qiskit/exceptions.py#L138-L139)

Raised when the file provided is not valid for the specific task.

Set the error message.

## Warnings

Some particular features of Qiskit may raise custom warnings. In general, Qiskit will use built-in Python warnings (such as [`DeprecationWarning`](https://docs.python.org/3/library/exceptions.html#DeprecationWarning)) when appropriate, but warnings related to Qiskit-specific functionality will be subtypes of [`QiskitWarning`](#qiskit.exceptions.QiskitWarning "qiskit.exceptions.QiskitWarning").

### QiskitWarning

*exception* `qiskit.exceptions.QiskitWarning`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.0/qiskit/exceptions.py#L142-L143)

Common subclass of warnings for Qiskit-specific warnings being raised.

Related to [`MissingOptionalLibraryError`](#qiskit.exceptions.MissingOptionalLibraryError "qiskit.exceptions.MissingOptionalLibraryError"), in some cases an optional dependency might be found, but fail to import for some other reason. In this case, Qiskit will continue as if the dependency is not present, but will raise [`OptionalDependencyImportWarning`](#qiskit.exceptions.OptionalDependencyImportWarning "qiskit.exceptions.OptionalDependencyImportWarning") to let you know about it.

### OptionalDependencyImportWarning

*exception* `qiskit.exceptions.OptionalDependencyImportWarning`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.0/qiskit/exceptions.py#L146-L149)

Raised when an optional library raises errors during its import.

When experimental features are being used, Qiskit will raise [`ExperimentalWarning`](#qiskit.exceptions.ExperimentalWarning "qiskit.exceptions.ExperimentalWarning").

> **Warning**
>
> Qiskit experimental features can break at any minor release and their API might change without previous notification. Their use is not recommended in production.

### ExperimentalWarning

*exception* `qiskit.exceptions.ExperimentalWarning`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/1.0/qiskit/exceptions.py#L152-L153)

Raised when an experimental feature is being used.

### Filtering warnings

Python has built-in mechanisms to filter warnings, described in the documentation of the [`warnings`](https://docs.python.org/3/library/warnings.html#module-warnings) module. You can use these subclasses in your warning filters from within Python to silence warnings you are not interested in. For example, if you are knowingly using experimental features and are comfortable that they make break in later versions, you can silence [`ExperimentalWarning`](#qiskit.exceptions.ExperimentalWarning "qiskit.exceptions.ExperimentalWarning") like this:

```python
import warnings
from qiskit.exceptions import ExperimentalWarning

warnings.filterwarnings("ignore", category=ExperimentalWarning)
```
