Why this object doesn't rotate the way it should?

I’m trying to rotate this object only by Z axis, like I did manually with a mouse rotation in the beginning of this “.gif”. But after that you can see, when playing the animation, it doesn’t rotate that way. I rotated it by 360 degrees, orientation is local and the keyframes are all rotation set only in the animation. I didn’t move the object, scale, or rotate in Y or X axis.

In case the .gif doesn’t work - https://i.imgur.com/yqwtpWw.gifv.

Project link (~1 GB) - https://we.tl/t-jSBrbISlkQ.

can you please share the object with its animation?

I have updated my post, though beware it’s around 1 GB size.

in that case share only the important object (the stick).

your problem is that you’ve enabled the Transformation Orientation > Local, so your stick rotate on its local axis when you test it in the viewport, but when you create an animation it won’t rotate it on its local axis, it will rotate on the global axis. If you want the local axis to be aligned on the global axis, select the object and ctrl A > Apply Rotation.

If you want it to keep its current orientation you could parent the stick to an object like an empty and rotate the empty, not the stick.

When I used the empty one it didn’t go well with the rotation, but then instead of the empty object, I placed an armature bone and parented appropriately. It’s still not perfect, but good enough I guess. Though, it’s really weird why they can’t just make it simple when you want to animate an object in local orientation, thanks for the help!