Yanked ic-cdk v0.18 – Investigating Reported Issues

Hi everyone,

We’ve yanked ic-cdk v0.18.0 and v0.18.1 due to reports of unexpected errors. We’re currently investigating whether these stem from bugs in the release or potential usage misunderstandings and will share updates as soon as possible.

For production environments, please continue using v0.17. If you’d like to test the new API changes, you can experiment with v0.18.0-alpha.2, but we advise against deploying it in production until the issues are resolved.

We apologize for the inconvenience and greatly appreciate your patience and feedback. If you encountered errors similar to the reported ones below, please share details in this forum thread. Your input will help us diagnose and fix the problem faster.

Canister violated contract: \"ic0_msg_reply_data_append\" cannot be executed in cleanup mode
Canister violated contract: ic0_msg_reply_data_append: the call is already replied.

Thanks,
Linwei

11 Likes

Good news! We’ve completed our investigation.

To summarize:

  • There were no known bugs in the ic-cdk v0.18 release itself.
  • The reported issues stemmed from projects inadvertently using multiple incompatible major versions of ic-cdk in their dependency tree.
  • We’ve released v0.18.2 and backported fixes to all major versions from 0.8 through 0.17.

@AdamS posted a complete explanation with all the details here.

The new versions include improved safeguards that will detect version conflicts at compile time and guide you to solutions.

Thank you for your patience while we investigated this issue. If you have any questions, please feel free to ask in the thread linked above.

11 Likes

Linking to the most up-to-date info, as v0.18.2 has been yanked: Ic-cdk v0.18.2 Release: Important Update on Version Compatibility

1 Like

When will ic-cdk v0.18 be fixed and available for use?
Several of my projects have already migrated to ic-cdk v0.18, and it’s impossible to revert back to ic-cdk v0.17 now.

@lwshang @AdamS

1 Like

Given that we have found a solution to the issue. Do we still need to roll back to v0.17.2 as proposals [136671, 136672, 136673, 136675, 136676, 136678] are attempting to do?

Expect an update soon (<7 days). We apologize for the inconvenience.

1 Like

Update: A couple of issues have been discovered in 0.18.2 and we expect to release 0.18.3 soon to address them. These issues cannot be encountered if you had working code in 0.17 that you upgraded, and did not start using new futures-based abstractions like async channels since then. They only relate to the circumstance where you await non-inter-canister-call futures like channels or barriers.

5 Likes

I check for new ic-cdk releases every day. :face_holding_back_tears:

1 Like

ic-cdk 0.18.3 is now released.

3 Likes