# Ic-cdk v0.18.2 Release: Important Update on Version Compatibility

**URL:** <https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963>\
**Category:** CDK\
**Created:** [May 14, 2025, 6:59pm UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963 "2025-05-14T18:59:07Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![AdamS](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/adams/32/5248_2.png) [@AdamS](https://forum.dfinity.org/u/AdamS)\
**Post date:** [May 14, 2025, 6:59pm UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/1 "2025-05-14T18:59:07Z")

</div>

Update: Out of an abundance of caution, we yanked 0.18.2 pending internal security review. To reiterate, we do not believe the issues reported about 0.18.1 are caused by any internal bugs, but the seriousness of those reported issues warranted being extremely careful. We [have released 0.18.3](https://forum.dfinity.org/t/ic-cdk-0-18-3-released/49637) to address some minor issues found. The original post continues below:

* * *

Hi everyone,

We’ve released `ic-cdk` [v0.18.2](https://crates.io/crates/ic-cdk/0.18.2) with important compatibility improvements. **To be clear: there are no known bugs in the recent releases.** What we’ve discovered is a pre-existing compatibility issue that we’ve now addressed more effectively.

# What Happened

The issue some users experienced wasn’t due to a bug in `ic-cdk` 0.18 itself. Rather, it occurred when projects inadvertently used dependencies that relied on different major versions of `ic-cdk` (specifically 0.17.x alongside 0.18.y). This version mismatch could be easily overlooked during development but cause problems at runtime.

# What We’ve Improved

- We’ve factored out the async executor into a separate library called `ic-cdk-executor`, making `ic-cdk` 0.18.2 compatible with future releases.
- There are new patch versions for every major release between 0.8 and 0.17, making those releases compatible with each other. **All existing versions for those major releases have been yanked**.
- Most importantly, you’ll now receive a clear compile-time error linking directly to [our troubleshooting guide](https://github.com/dfinity/cdk-rs/blob/links-pin/TROUBLESHOOTING.md) if:
  - your dependency tree contains both 0.17 (or any prior version) and 0.18.
  - you have updated to the new patch releases

# Recommended Actions

- We encourage all users to update to the latest patch version within your major release series. It will ensure that there are no hiccups if a dependency uses a different version of `ic-cdk`.
- If you haven’t migrated to 0.18 yet, you can find the migration guide from 0.17→0.18 [here](https://github.com/dfinity/cdk-rs/blob/0.18.2/ic-cdk/V18_GUIDE.md).

Thank you for your understanding and continued support.

---

<div class="post-metadata">

**Author:** ![zensh](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/zensh/32/15359_2.png) [@zensh](https://forum.dfinity.org/u/zensh)\
**Post date:** [May 15, 2025, 12:15am UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/2 "2025-05-15T00:15:50Z")

</div>

version conflicting with ic-canister-sig-creation:

```auto
cargo update
    Updating crates.io index
error: failed to select a version for `ic-cdk-executor`.
    ... required by package `ic-cdk v0.17.2`
    ... which satisfies dependency `ic-cdk = "^0.17"` of package `ic-canister-sig-creation v1.2.0`
    ... which satisfies dependency `ic-canister-sig-creation = "^1.2"` of package `ic_cose_canister v0.8.3 (/Users/zensh/git/github.com/ldclabs/ic-cose/src/ic_cose_canister)`
versions that meet the requirements `^0.1.0` are: 0.1.0

```

---

<div class="post-metadata">

**Author:** ![lwshang](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/lwshang/32/3394_2.png) [@lwshang](https://forum.dfinity.org/u/lwshang)\
**Post date:** [May 15, 2025, 3:14am UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/3 "2025-05-15T03:14:09Z")

</div>

This is indeed what we want to detect that you don’t depend on `ic-cdk` v0.18 and v0.17 at the same time.

IIUC, the `cargo update` command was executed in the `ic-cose` project.  
It declares the direct `ic-cdk` dependency with `0.18`.  
While the other dependency `ic-canister-sig-creation` depends on `ic-cdk` v0.17.

You should have gotten more message following the errors you included above.

> Only one package in the dependency graph may specify the same links value. This helps ensure that only one copy of a native library is linked in the final binary. Try to adjust your dependencies so that only one package uses the `links = "ic-cdk async executor, see https://github.com/dfinity/cdk-rs/blob/links-pin/TROUBLESHOOTING.md"` value. For more information, see [Dependency Resolution - The Cargo Book](https://doc.rust-lang.org/cargo/reference/resolver.html#links).

So for now, you can either:

- Downgrade the direct dependency of `ic-cdk` to v0.17.2.
- Wait for a new release of `ic-canister-sig-creation` that depends on `ic-cdk` v0.18.2.

---

<div class="post-metadata">

**Author:** ![zensh](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/zensh/32/15359_2.png) [@zensh](https://forum.dfinity.org/u/zensh)\
**Post date:** [May 15, 2025, 4:39am UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/4 "2025-05-15T04:39:21Z")

</div>

> [@lwshang](#):
>
> Wait for a new release of `ic-canister-sig-creation`

I am waiting for a new release of `ic-canister-sig-creation` 😃

---

<div class="post-metadata">

**Author:** ![hpeebles](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/hpeebles/32/1400_2.png) [@hpeebles](https://forum.dfinity.org/u/hpeebles)\
**Post date:** [May 15, 2025, 7:36am UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/5 "2025-05-15T07:36:55Z")

</div>

I get the same issue with `ic-canister-sig-creation` and also `ic-verifiable-credentials`.

I can see that the CDK has already been bumped to 0.18 in `ic-canister-sig-creation` (see [here](https://github.com/dfinity/ic-canister-sig-creation/blob/main/Cargo.toml)), the new version just needs to be published. For now we can just switch to using a git dependency.

I’ll make a PR to `ic-verifiable-credentials` to bump the CDK version.

Edit: Ah it turns out `ic-verifiable-credentials` also depends on `ic-canister-sig-creation`. @lwshang do you know who at Dfinity can publish the latest version of `ic-canister-sig-creation` to [crates.io](http://crates.io)? I’d prefer to make a PR to `ic-verifiable-credentials` which switches to a released version rather than to a git dependency.

Edit 2: I think the IC repo will need to be fully updated first because `ic-verifiable-credentials` depends on `ic-signature-verification` which comes from the IC repo. So I guess for now I’ll just do nothing until the IC repo is updated.

---

<div class="post-metadata">

**Author:** ![lwshang](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/lwshang/32/3394_2.png) [@lwshang](https://forum.dfinity.org/u/lwshang)\
**Post date:** [May 15, 2025, 1:11pm UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/6 "2025-05-15T13:11:35Z")

</div>

Yes. I’m working on updating `ic-cdk` dependency in the IC repo. This is my priority now.

---

<div class="post-metadata">

**Author:** ![AdamS](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/adams/32/5248_2.png) [@AdamS](https://forum.dfinity.org/u/AdamS)\
**Post date:** [May 15, 2025, 4:26pm UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/7 "2025-05-15T16:26:01Z")

</div>

Update: Out of an abundance of caution, we have temporarily yanked 0.18.2 pending internal security review. To reiterate, we do not believe the issues reported about 0.18.1 are caused by any internal bugs, but the seriousness of those reported issues warrants being extremely careful. If you wish to test 0.18.2 out locally, you can depend on the release 0.18.2-alpha.1. We expect to soon unyank 0.18.2 if no issues are discovered, and we apologize for any confusion.

---

<div class="post-metadata">

**Author:** ![AdamS](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/adams/32/5248_2.png) [@AdamS](https://forum.dfinity.org/u/AdamS)\
**Post date:** [June 4, 2025, 5:29pm UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/8 "2025-06-04T17:29:26Z")

</div>

`ic-cdk` 0.18.3 is now released.

> [@Ic-cdk 0.18.3 released](https://forum.dfinity.org/t/ic-cdk-0-18-3-released/49637):
>
> Hi everyone, We’ve released ic-cdk [v0.18.3](https://docs.rs/ic-cdk/0.18.3/ic_cdk/index.html). This release brings the removal of a few edge cases from v0.18.2, as well as support for the new [root\_key API](https://docs.rs/ic-cdk/0.18.3/ic_cdk/api/fn.root_key.html) and mirroring mainnet parameters for Bitcoin regtest. If you are just now updating to 0.18 from 0.17 or before, we have prepared a [migration guide](https://github.com/dfinity/cdk-rs/blob/0.18.3/ic-cdk/V18_GUIDE.md) that we recommend you read. There are changes to the call API, as well as changes to the execution order of code that calls spawn. The [futures module](https://docs.rs/ic-cdk/0.18.3/ic_cdk/futures/index.html) also has new and improved documentation that de…

---

<div class="post-metadata">

**Author:** ![Gwojda](https://avatars.discourse-cdn.com/v4/letter/g/5fc32e/32.png) [@Gwojda](https://forum.dfinity.org/u/Gwojda)\
**Post date:** [June 17, 2025, 2:52pm UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/9 "2025-06-17T14:52:52Z")

</div>

Hey,  
When can we expect to have this done ? I just spent one day to update all crates and repository, and i’m stuck on one of our repository because of icrc-ledger-types is not yet updated with the last ic-cdk version. 😅  
Thanks !

---

<div class="post-metadata">

**Author:** ![peterparker](https://avatars.discourse-cdn.com/v4/letter/p/b9bd4f/32.png) [@peterparker](https://forum.dfinity.org/u/peterparker)\
**Post date:** [June 17, 2025, 2:57pm UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/10 "2025-06-17T14:57:08Z")

</div>

> [@Gwojda](#):
>
> icrc-ledger-types is not yet updated with the last ic-cdk version.

Are you sure? I literally installed `icrc-ledger-types = "0.1.8"` today as I was looking to migrate and can compile successfully 🤷‍♂️.

---

<div class="post-metadata">

**Author:** ![Gwojda](https://avatars.discourse-cdn.com/v4/letter/g/5fc32e/32.png) [@Gwojda](https://forum.dfinity.org/u/Gwojda)\
**Post date:** [June 17, 2025, 3:03pm UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/11 "2025-06-17T15:03:56Z")

</div>

> [@peterparker](#):
>
> icrc-ledger-types

ic-ledger-types seems to be fine, but icrc-ledger-types still depend on 0.17.2 : [crates.io: Rust Package Registry](https://crates.io/crates/icrc-ledger-types/0.1.9/dependencies).  
Or maybe im wrong and i have to dig more. Can you confirm you are using icrc-ledger-types and no ic-ledger-types

---

<div class="post-metadata">

**Author:** ![mathiasb](https://avatars.discourse-cdn.com/v4/letter/m/f475e1/32.png) [@mathiasb](https://forum.dfinity.org/u/mathiasb)\
**Post date:** [June 17, 2025, 3:11pm UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/12 "2025-06-17T15:11:39Z")

</div>

It seems `0.1.8` of [icrc-ledger-types](https://crates.io/crates/icrc-ledger-types/0.1.8/dependencies) did not depend on `ic-cdk`, but `0.1.9` [does](https://crates.io/crates/icrc-ledger-types/0.1.9/dependencies). It doesn’t seem to be used though - maybe it was added by accident, or should only be a dev-dependency. I’ll dig a bit deeper - in case it can be removed completely, we’ll look into publishing a new version.

---

<div class="post-metadata">

**Author:** ![Gwojda](https://avatars.discourse-cdn.com/v4/letter/g/5fc32e/32.png) [@Gwojda](https://forum.dfinity.org/u/Gwojda)\
**Post date:** [June 17, 2025, 3:19pm UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/13 "2025-06-17T15:19:05Z")

</div>

ah ok i was using the latest version as mathias said. With icrc-ledger-types = “0.1.8” it’s working correctly. Will use that version now, and we will see if this new dependencies was necessary or not. THanks both of you !

---

<div class="post-metadata">

**Author:** ![mathiasb](https://avatars.discourse-cdn.com/v4/letter/m/f475e1/32.png) [@mathiasb](https://forum.dfinity.org/u/mathiasb)\
**Post date:** [June 18, 2025, 1:01pm UTC](https://forum.dfinity.org/t/ic-cdk-v0-18-2-release-important-update-on-version-compatibility/47963/14 "2025-06-18T13:01:56Z")

</div>

@Gwojda: @maciejdfinity1 just published [version `0.1.10` of `icrc-ledger-types`](https://crates.io/crates/icrc-ledger-types/0.1.10) without an `ic-cdk` dependency, so you should be able to upgrade to that (and get the ICRC-103 types that were added in `0.1.9`).
