Canisters not being upgraded in a multi canister architecture

Hi All,

So I have a multi canister architecture where its one canister per user. I recently upgraded the canisters to contain some new methods on the user canister but it seems that the existing user canisters do not contain this method. What could be causing the existing user canisters to not be upgraded with the new methods. I have previously added fields on the user object with no issue but these methods not showing up is a first. Any help would be greatly appreciated!

I assume you mean that you have one canister that controls a bunch of user canisters? In that case the controlling canister needs to install_code with mode = upgrade on every single user canister to update the existing canisters

Yes I have a user index canister. So then in the post_upgrade of the user index canister I call install_code? Is there somewhere I can find an example of this flow?

No, post_upgrade cannot be async. You have to do it some other way, e.g. with a timer. I don’t have an example handy, but I know OpenChat and Yral both have such a mechanism so maybe you could check out their repos?

Ah okey great thank you!