Removing deprecated System API from the replica

The canister System API calls ic0.call_simple, ic0.controller_size, and ic0.controller_copy are deprecated for a long time and should not be imported by a canister’s WASM. We plan to remove them from the replica and would like to give heads up to canister developers who might still depend on them. They are kindly asked to upgrade their canister with a WASM that does not import any of these System API calls ic0.call_simple, ic0.controller_size, and ic0.controller_copy.

The System API call ic0.call_simple has been removed from the Interface Spec at version 0.13.0 (2020-11-05), from the Rust CDK at version 0.1.1 (2020-10-04), and from the Motoko compiler at version 0.4.5 (2020-10-06).

The System API calls ic0.controller_size and ic0.controller_copy have never been part of the Interface Spec, the Rust CDK, and the Motoko compiler. These System API calls only return a meaningful result for canisters with a single controller (otherwise, they return fixed default values). Instead, the System API call ic0.canister_status should be used.

1 Like

The canister with ID 3eylo-3yaaa-aaaai-qfiwq-cai is still using the deprecated System API calls ic0.controller_size and ic0.controller_copy. Hence, we would like to ask its developers to upgrade their canister with a WASM that does not import any of these System API calls. Otherwise, their canister will stop working after we remove support for these calls from the replica code which is expected to happen mid May 2023.

The canister with ID d2hqk-bqaaa-aaaal-qaq7a-cai is still using the deprecated System API calls ic0.controller_size and ic0.controller_copy. Hence, we would like to ask its developers to upgrade their canister with a WASM that does not import any of these System API calls. Otherwise, their canister will stop working after we remove support for these calls from the replica code which is expected to happen mid May 2023.