Why doesn't the singal for area_enter get called when it happens?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Hormoz
:warning: Old Version Published before Godot 3 was released.

Hello.
I have 30 of area2Ds without counting the mouse area2D, and the mouse in the game is also followed by an area2D. why doesn’t under some special circumstance, the area _ enter without the spaces signal for the area2D of the mouse when it enters one of those 30 other area2Ds gets called, it only happens to some of those and seems like it’s different every time?
here is a video of it:

The overlaps _ area without the spaces returns true for those 30 area2Ds when checking for the mouse area2d only when the mouse is on them, but the overlaps_area returns always true for the mouse area2D when checking for that area2D that the signal isn’t working for.
here is the code for the functions that change those inventory slots nodes and lables and the singals, _ on _ mouse _ enter is for the area _ enter signal and the on _ mouse _ exit is the area _ exist signal, without all those spaces:

func change_inventory():
    for i in range(inventory_size):
        var item_number=inventory_number[i]
        var item_type=inventory_type[i]
        var image
        if(item_type==-1):
            image=load("res://inventory_slot.png")
        else:
            image=load("res://"+str(inventory_type[i])+"_inventory_slot.png")
        get_node("inventory/inventory_slots/inventory_slot"+str(i+1)).set_texture(image)
        if(not(item_number==-1)):
            get_node("inventory/inventory_slots/inventory_slot"+str(i+1)+"/Label").set_text(str(inventory_number[i]))
        else:
            get_node("inventory/inventory_slots/inventory_slot"+str(i+1)+"/Label").set_text("")
    change_hotbar_inventory()
 
 
 
 
func change_hotbar_inventory():
    for i in range(hotbar_inventory_size):
        var image=get_node("inventory/inventory_slots/inventory_slot"+str(i+1)).get_texture()
        var label_text=get_node("inventory/inventory_slots/inventory_slot"+str(i+1)+"/Label").get_text()
        get_node("hotbar_inventory/inventory_slots/inventory_slot"+str(i+1)).set_texture(image)
        get_node("hotbar_inventory/inventory_slots/inventory_slot"+str(i+1)+"/Label").set_text(label_text)



func _on_mouse_enter( area ):
	print(area.get_parent().get_name())
	if(not(area.get_parent().get_name().find("inventory_slot")==-1)):
		mouse_on=area.get_parent().get_name().replace("inventory_slot","").to_int()


func _on_mouse_exit( area ):
	if(not(area.get_parent().get_name().find("inventory_slot")==-1)):
		mouse_on=-1