Bug in Canister history on the IC

In a past post, we announced that the IC tracks the history of deployed canister code hashes and controller changes (referred to as the canister history).

As it turned out, there was a bug in the implementation of the canister history feature and entries for some canister code changes might be missing. In more detail, if a canister code installation was executed over multiple rounds using deterministic time slicing (a.k.a. DTS - more information on DTS can be found here), then the corresponding code change entry is missing in the history. The bug has been fixed by this replica commit and approved and released by the NNS DAO in proposal 126293.

Hence, the canister history is only guaranteed to contain entries for all canister changes made after the proposal has been rolled out on the canister’s subnet (since December 11, 2023, 10:47:33 AM UTC, on all subnets). For canister changes made beforehand, the corresponding entries might be missing, but, if present, they are genuine.