I am trying to spawn multiple Area2D nodes with random coordinates while preventing overlapping spawns using a CollisionShape2D. I am spawning the nodes one by one.
I'm using the area_entered signal to check for overlaps; if an overlap is detected, reposition the node (this has the effect that it repositions both the previously spawned node, and the new one - that's fine). However it seems that after a while the area_entered signal stops firing for some nodes, despite the engine detecting overlapping areas. See here on the bottom-right:

The scene is not frozen by the way, I can spawn more boxes and they start moving around again, i.e. the signal starts firing again.
The code is straightforward:
func _on_Box_area_entered(area):
reposition()
func reposition():
self.position = Vector2(rand_range(0, get_viewport().size.x),
rand_range(0, get_viewport().size.y))
Any idea why the area_entered signals stops firing despite still detecting an overlapping area?