Quick answer: Godot 4 Tween.tween_method calling on a target whose instance was freed? Tween holds the callable; freed instance is_instance_valid=false; call crashes.

Tween a UI animation; UI scene freed mid-tween; crash on the callback.

Bind tween to node

tween.bind_node(target). Auto-kills on free; callbacks safe.

Or validate in method

if not is_instance_valid(target): return

Defensive; safe.

Audit tween targets

Each tween's target lifetime. If shorter than tween, the bind or guard is required.

“Tween outlives its target. Both die together is the safer pattern.”

If you create tweens, bind_node is the default. The cost is one line; the bug class disappears.

Related reading