Blender 3.1 keyframe evaluation overrides bpy.app.timers

Hi,

I have a function in my add-on that interpolates between 2 different transforms. The goal is to move an object A to another object B position, and it is nicely transitioning into the new position using a bpy.app.timers.

This used to be fine in Blender 3.0, but in 3.1, this interpolation doesn’t work anymore if there is a key set on the object A transform.
I’m thinking that the keyframes now get evaluated after each bpy.app.timers tick, and overrides the interpolated position I’m trying to apply.

Has there been any code change related to my issue, and does anyone know of a workaround?

Thanks!

Maybe linked to the isuse above, bpy.app.timers now trigger a viewport re-render if there are drivers on objects or materials in the scene.

Any idea how to work around this new behavior? It’s pretty hard to make use of bpy.app.timers now.

EDIT: I’ve been investigating a bit more and I was not able to understand exactly the issue, but deleting drivers from my objects fixed the issue, so I believe they are the culprits.