---
title: Qiskit Transpiler Service release notes
description: Changes made to Qiskit Transpiler Service
source: https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-transpiler/release-notes
---

# Qiskit Transpiler Service release notes

## 0.18.0 (2026-03-10)

### New features

- Move routing inference into the project for local execution. This introduces a new Rust routing engine and a new Python `local_routing` package, allowing models to be downloaded from HuggingFace and run locally. The existing AI routing passes have been updated to use this new local inference path. ([247](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/247))

### Other notes

- Upgrade release GitHub action to handle rust/pyo3. ([248](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/248))

## 0.17.0 (2026-02-16)

### New features

- Pauli network synthesis now uses `qiskit-gym` models, consistent with Clifford, linear function, and permutation synthesis. ([244](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/244))

## 0.16.1 (2026-02-16)

### Upgrade notes

- Upgrade ‘qiskit-serverless’ dependency from 0.28.0 to 0.29.0. ([243](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/243))

## 0.16.0 (2026-01-23)

### New features

- Added local AI synthesis support using qiskit-gym reinforcement learning models. This enables local execution of AI-powered Clifford, Linear Function, and Permutation synthesis passes using the new open source framework qiskit-gym. Models are automatically downloaded from HuggingFace and cached locally. Configuration is available via environment variables (`QISKIT_TRANSPILER_<MODEL_TYPE>_REPO_ID`, `_REVISION`, `_SUBDIR`). ([209](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/209))

## 0.15.2 (2026-01-13)

### Upgrade notes

- Upgrade ‘qiskit-serverless’ dependency from 0.27.0 to 0.28.0. ([240](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/240))

## 0.15.1 (2026-01-08)

### New features

- `TranspilerService` now automatically reads the `instance` (CRN) from the saved account credentials, similar to other IBM Quantum services like `qiskit-ibm-runtime`, `qiskit-ibm-catalog`, and `qiskit-serverless`. The instance is retrieved from the saved credentials file (`~/.qiskit/qiskit-ibm.json`) or from the `QISKIT_IBM_INSTANCE` environment variable, eliminating the need to explicitly provide the `instance` parameter when initializing the service. ([233](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/233))
- Enhanced system token retrieval to support different account names. The token retrieval now tries `default-ibm-quantum-platform` before `default-ibm-quantum`, improving compatibility with `qiskit-ibm-runtime`. ([235](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/235))

## 0.15.0 (2025-12-02)

### Upgrade notes

- Dropped support for Python 3.9, which has reached end-of-life. The minimum supported Python version is now **3.10**. Users running Python 3.9 must upgrade to Python 3.10 or 3.11 to use this version of `qiskit-ibm-transpiler` and later. ([227](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/227))
- Update old compatible syntaxis with 3.9 like List\[Union\[DAGOpNode, DAGDepNode]]: , to modern one: list\[DAGOpNode | DAGDepNode]. ([230](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/230))
- The `qiskit-ibm-ai-local-transpiler` package is now installed by default as a required dependency. Previously, this was an optional dependency that users needed to install explicitly using `pip install qiskit-ibm-transpiler[ai-local-mode]`. The `[ai-local-mode]` extra is maintained for backward compatibility but is no longer necessary. This change improves the default user experience by enabling AI transpiler passes to run locally without additional installation steps. ([231](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/231))

### New features

- Added support for Python 3.12 and 3.13. The library now supports Python versions **3.10 through 3.13**. ([228](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/228))

### Bug fixes

- Fixed GitHub Actions CD workflow error by replacing the invalid `python-version` parameter in the `astral-sh/setup-uv@v3` action with a separate step using `uv python install 3.11` to properly install Python 3.11. ([226](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/226))

### Other notes

- Removed the obsolete `requirements-dev.txt` file that was replaced by dependency groups in `pyproject.toml` in version 0.14.5. ([225](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/225))

## 0.14.5 (2025-11-18)

### Upgrade notes

- Migrated project environment management from pip (requirements-dev.txt) and setup.py to the uv tool. In addition, the files ruff.toml and pytest.ini files have been merged on the pyproject.toml file.

  **What changed** - Introduced uv for dependency resolution and virtual environment management. - Replaced requirements-dev.txt with dependency groups defined in pyproject.toml. - Updated the development workflow (.github/actions and .github/workflows) and contribution guidelines to use uv sync and uv run. - Added documentation on using extras (e.g., –extra ai-local-mode), group selections (e.g., uv sync –group dev|docs) and Python version selection.

  **Impact to users** - No functional changes to the library itself. - Contributors now manage environments using uv instead of pip. ([210](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/210))

### Bug fixes

- Fix error ‘DAGCircuitError: ‘bit mapping invalid:’ error ([213](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/213))
- Fix docs upload & PyPI build workflows and cache the uv environment ([217](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/217))
- Re-enable functions e2e tests ([220](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/220))
- Workaround for physical circuits failing test ([219](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/219))

## 0.14.4 (2025-10-29)

### Bug fixes

- Revert: Restrict ibm-runtime till serverless fix the problem ([207](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/207))

## 0.14.3 (2025-10-07)

### Bug fixes

- Restrict ibm-runtime till serverless fix the problem ([205](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/205))

## 0.14.2 (2025-09-25)

### Upgrade notes

- Update Qiskit Serverless and Qiskit IBM Runtime ([203](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/203))

## 0.14.1 (2025-09-15)

### New features

- docs: Improve documentation structure and add comprehensive tutorial ([198](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/198))
- Enable local\_mode by default for AIPauliNetworkSynthesis and solving a error for non-synthesized circuits ([199](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/199))

### Bug fixes

- Keep the original representation when the service/local version does not provide a better circuit ([195](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/195))

### Other notes

- Remove dependency on qiskit runtime for local testing ([200](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/200))

## 0.14.0 (2025-08-21)

### New features

- Migrate Transpiler Service to Qiskit Function ([189](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/189))

## 0.13.1 (2025-07-21)

### Other notes

- Updating the README to reflect the latest changes & updates ([184](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/191))

## 0.13.0 (2025-07-03)

### New features

- Enable Pauli Network inference in local mode ([184](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/184))

## 0.12.0 (2025-06-20)

### New features

- Improve Collection Pass Performance via Precomputed Siblings and Queue Optimization #UnitaryHack2025 ([177](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/177))

## 0.11.1 (2025-05-14)

### Bug fixes

- Add Networkx package missing from the requirements ([172](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/172))

## 0.11.0 (2025-03-25)

### Upgrade notes

- Prepare compatibility to Qiskit to v2.0.0 (minimum required 1.4.2) ([168](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/168))

### Deprecation notes

- Remove backend\_name from AIRouting and AISynthesis ([165](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/165))

### Other notes

- Refactored type definitions by centralizing OptimizationOptions in qiskit\_ibm\_transpiler/types.py.

  **What changed?** - Introduced qiskit\_ibm\_transpiler/types.py to store shared type definitions. - Moved the OptimizationOptions type alias to types.py, eliminating redundancy. - Updated all relevant imports to use the centralized definition. - Ensured compliance with **PEP 484** recommendations for type aliasing.

  **How does this affect users?** - No breaking changes; this is an internal refactor. - Any direct references to OptimizationOptions in multiple files now import it from types.py.

  **Updated import path:** .. code:: python

  > from qiskit\_ibm\_transpiler.types import OptimizationOptions

  This improves code maintainability and makes future type updates easier.

  Fixes #166 \<[https://github.com/Qiskit/qiskit-ibm-transpiler/issues/166](https://github.com/Qiskit/qiskit-ibm-transpiler/issues/166)>. ([166](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/166))

## 0.10.3 (2025-03-04)

### Upgrade notes

- Support qiskit 1.4.0 (fixed) ([162](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/162))

### New features

- Added a \_\_version\_\_ attribute to qiskit\_ibm\_transpiler to enable version retrieval.

  **What changed?** - Introduced qiskit\_ibm\_transpiler/version.py for dynamically retrieving the package version. - Exposed \_\_version\_\_ in \_\_init\_\_.py, allowing users to access the installed package version. - If the package is installed normally, it will return the version as defined in importlib.metadata.version(). - If the package is being used from a Git repository **without a release tag**, it appends the commit hash.

  **How to use the new feature?** Users can now check the installed version by running:

  ```python
  import qiskit_ibm_transpiler
  print(qiskit_ibm_transpiler.__version__)
  ```

  **Example outputs:** - Installed via pip install qiskit-ibm-transpiler: `0.10.1` - Running from Git with a release tag: `0.10.1` - Running from Git **without a release tag**: `0.10.1.dev0+a1b2c3d`

  Fixes #18 \<[https://github.com/Qiskit/qiskit-ibm-transpiler/issues/18](https://github.com/Qiskit/qiskit-ibm-transpiler/issues/18)>. ([158](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/158))

## 0.10.2 (2025-02-26)

### Upgrade notes

- Support qiskit 1.4.0 ([159](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/159))

## 0.10.1 (2025-02-20)

### Bug fixes

- Fix generate\_ai\_pass\_manager failures for certain combination of inputs ([154](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/154))
- Add Qiskit 1.3.3 to QPY version mapping ([155](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/155))
- Use staging service for tests ([156](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/156))

## 0.10.0 (2025-01-09)

### Upgrade notes

- Update Qiskit to v1.3.0. ([144](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/144))

### Deprecation notes

- Remove qiskit\_transpiler\_service package. ([147](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/147))

### Bug fixes

- Align QPY version with service. ([136](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/136))
- Fixes permutation notebook example by updating the coupling map used ([141](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/141))

## 0.9.3 (2024-12-18)

### Other notes

- Pin qiskit\_ibm\_ai\_local\_transpiler version to 0.1.4 and Qiskit to \<1.3 ([149](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/149))

## 0.9.2 (2024-12-12)

### Bug fixes

- Pin qiskit\_ibm\_ai\_local\_transpiler version to 0.1.3 ([145](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/145))

## 0.9.1 (2024-11-15)

### Bug fixes

- Fix optimization\_preferences\` used in generate\_ai\_pass\_manager method. Adding related tests ([130](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/130))

## 0.9.0 (2024-11-14)

### New features

- Adding local mode for routing, permutations, linear functions and cliffords. ([125](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/125))

### Deprecated

- Deprecate Python 3.8 support

## 0.8.2 (2024-11-13)

### Bug fixes

- Added fix to avoid random test errors. Check that result exists when result is success. ([105](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/105))
- Fix pauli better circuit replacement. ([122](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/122))

## 0.8.1 (2024-11-13)

### New features

- Updating the README to reflect the availability of the AIPauliNetworkSynthesis feature. ([121](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/121))

## 0.8.0 (2024-11-13)

### New features

- In case of failure, always retry the GET request to retrieve a result unitl the timeout is reached. Increase the delay between requests to 5 seconds when we are over 1 minute. Retry transpilation POST request three times in case of failure. ([97](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/97))
- Use QPY as exchange format with service ([104](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/104))
- Retry http requests after any RequestException ([111](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/111))
- Add Pauli Network synthesis pass. ([112](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/112))

## 0.7.4 (2024-11-11)

### New features

- Use QPY as exchange format with service ([104](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/104))

## 0.7.3 (2024-11-06)

### New features

- Retry http requests after any RequestException ([111](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/111))

## 0.7.2 (2024-10-31)

### Bug fixes

- Added fix to avoid random test errors. Check that result exists when result is success. ([105](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/105))

## 0.7.1 (2024-10-30)

### New features

- In case of failure, always retry the GET request to retrieve a result unitl the timeout is reached. Increase the delay between requests to 5 seconds when we are over 1 minute. Retry transpilation POST request three times in case of failure. ([97](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/97))

## 0.7.0 (2024-09-18)

### New features

- Adds support for sending the use\_fractional\_gates option to the transpile service ([83](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/83))
- Adds iterative decomposition to Qasm3 export. ([85](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/85))

### Other notes

- Removes unneeded benchmark method ([81](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/81))
- Adds test to verify that a circuit with a barrier will be transpiled ([84](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/84))

## 0.6.5 (2024-11-11)

### New features

- Use QPY as exchange format with service ([104](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/104))

## 0.6.4 (2024-11-07)

### New features

- Retry http requests after any RequestException ([111](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/111))

## 0.6.3 (2024-10-31)

### Bug fixes

- Added fix to avoid random test errors. Check that result exists when result is success. ([105](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/105))

## 0.6.2 (2024-10-30)

### New features

- In case of failure, always retry the GET request to retrieve a result unitl the timeout is reached. Increase the delay between requests to 5 seconds when we are over 1 minute. Retry transpilation POST request three times in case of failure. ([97](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/97))

## 0.6.1 (2024-09-17)

### Bug fixes

- Fixes a bug with ECR gates coming from Qiskit when parsing using OpenQASM2 ([74](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/74))

## 0.6.0 (2024-09-16)

### New features

- Add optimization\_preferences optional input to [`TranspilerService`](/docs/api/qiskit-ibm-transpiler/transpiler-service-transpiler-service "qiskit_ibm_transpiler.transpiler_service.TranspilerService") constructor.

  With this new feature, users could specify by which properties they want to optimize on the transpiler process. Allowed options are: “n\_cnots”, “n\_gates”, “cnot\_layers”, “layers”, “noise”, and these options can be provided in two ways: - Only an option, as a string value: Transpilation will be done priorizating this element and then the rest of the options - Several options, as a list: Transpilation will be done only with the specified elements ([67](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/67))

- Enabling coupling\_map as options to the AI Synthesis passes ([70](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/70))

### Bug fixes

- Keep trying to get results even in case of HTTPError exception with status 520 ([52](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/52))
- Fixing the type of ECR gates when loading circuits from the Qiskit Transpiler Service ([63](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/63))

## 0.5.7 (2024-11-11)

### New features

- Use QPY as exchange format with service ([104](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/104))

## 0.5.6 (2024-11-07)

### New features

- Retry http requests after any RequestException ([111](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/111))

## 0.5.5 (2024-10-31)

### Bug fixes

- Added fix to avoid random test errors. Check that result exists when result is success. ([105](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/105))

## 0.5.4 (2024-10-30)

### New features

- In case of failure, always retry the GET request to retrieve a result unitl the timeout is reached. Increase the delay between requests to 5 seconds when we are over 1 minute. Retry transpilation POST request three times in case of failure. ([97](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/97))

## 0.5.3 (2024-09-17)

### Bug fixes

- Fixes a bug with ECR gates coming from Qiskit when parsing using OpenQASM2 ([74](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/74))

## 0.5.2 (2024-09-12)

### Bug fixes

- Fixing the type of ECR gates when loading circuits from the qiskit transpiler service ([63](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/63))

## 0.5.1 (2024-08-29)

### Bug fixes

- Keep trying getting result even in case of HTTPError exception with status 520 ([52](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/52))

## 0.5.0 (2024-08-27)

### Upgrade notes

- Rename package to `qiskit-ibm-transpiler` ([43](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/43))

## 0.4.10 (2024-09-17)

### Bug fixes

- Fixes a bug with ECR gates coming from Qiskit when parsing using OpenQASM2 ([77](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/77))

## 0.4.9 (2024-09-12)

### Bug fixes

- Fixing the type of ECR gates when loading circuits from the qiskit transpiler service ([64](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/64))

## 0.4.8 (2024-08-29)

### Bug fixes

- Keep trying getting result even in case of HTTPError exception with status 520 ([54](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/54))

## 0.4.7 (2024-08-27)

### Bug fixes

- Add stacklevel to DeprecationWarning so it appears in Jupyter notebooks ([49](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/49))

## 0.4.6 (2024-08-23)

### Deprecation notes

- Add deprecation notice in preparation for project rename to `qiskit-ibm-transpiler` ([40](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/40))

### Bug fixes

- Forward incoming error when decoding fails ([36](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/36))

## 0.4.5 (2024-08-01)

### New features

- Enable programmatic config of polling timeout ([28](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/28))

### Bug fixes

- Using the declared `ai_layout_mode` in the TranspilerService’s run method ([25](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/25))

## 0.4.4 (2024-07-25)

### Upgrade notes

- Increasing timeout to 600s instead of 120s ([21](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/21))

### New features

- Expose service errors to users ([8](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/8))
- Configure logging for a library ([10](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/10))

### Bug fixes

- Correctly parse string boolean for ai param ([7](https://github.com/Qiskit/qiskit-ibm-transpiler/pull/7))

## 0.4.3 (2024-06-07)

### Upgrade notes

- Check existence of credentials and raise related exceptions instead of breaking

## 0.4.2 (2024-06-07)

### Bug fixes

- Python 3.8 support. Back to specify types with typing
- Fixing some import errors for local modules

### Other notes

- Relaxing pin of local dependencies

## 0.4.1 (2024-06-06)

### Upgrade notes

- Updating logs levels

### Bug fixes

- Rebuild layout in transpiled circuit
- Avoid barrier nodes in collection

### Other notes

- Refactoring the extension code

## 0.4.0 (2024-05-28)

### Upgrade notes

- Updating Clifford service URL
- Replace `use_ai` by `ai` param in requests

### New features

- Request the synthesis of a list of circuits to the service.
- Adding docstrings for public documentation

### Bug fixes

- Adjust dependencies to be less strict and support minor version updates for qiskit & patch updates for qiskit-qasm3-import

### Other notes

- Move type hints in documentation.
- Set name to logger

## 0.3.0 (2024-02-29)

### Upgrade notes

- Updating the plugin to use Qiskit 1.0 by default

### Bug fixes

- Supporting measurements in circuits when transpiling using `ai=true` option

## 0.2.1 (2024-02-22)

### New features

- Add multithreading to synth requests. The requests to the service for transpile and transpile now are done in parallel.

### Upgrade notes

- Updated collection passes. Now the passes could work up to N of qubits or with any block size of qubits.

## 0.2.0 (2024-02-12)

### New features

- Added support for synthesis and transpilation of Clifford, Permutation and Linear Function circuits. Using new URLs for the service.

## 0.1.3 (2023-12-11)

### Bug fixes

- Fixing layout integration with Qiskit for the transpiler service
- Fixing hardcoded input to routing
- Fix bug in input and refactor

## 0.1.2 (2023-12-04)

### Prelude

- Publishing first version 0.1.2 for the IBM Quantum Summit.
