UI animation issues with layering animator controllers

Most likely a dumb question but I have two animation controllers.

a
The top level one (on panel) has an animation for opening and closing a phone. I do this through code; there are no transitions. the animation includes the animator/sprite on the second animator controller, so it’s modifying the charm sprite object.

The lower level animator controller (charm) that’s a child of the parent panel animator controller just controls idle animations of the charm

I set parameter through code and set transitions based on parameter.

So the code works in that the animation on the charm definitively transitions properly and the parameter also changes properly. The problem is that the charm animator controller sprite is just always getting overwritten by the last frame of last animation played by the panel animator controller. Why is that? I can’t see any of the animations on the charm object actually reflecting in the game despite the animator controller clearly firing off animations on the animator window./

charm animator controller window:

panel animator controller:

Perhaps you have Write Defaults (x) checked in your animation state?

Otherwise, here’s how to untangle code / animation:

Anything with Animations / Animators / Mechanim:

Only consider the code AFTER you have done this critical step:

Always start with the Animator state machine and prove it works in isolation, no code at all.

Here’s more reading: