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.
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.
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?
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.