Player collision signals suddenly stopped working

Godot Version


To set the scene, I am creating a game where the player slides around avoiding walls and other obstacles while dodging ai

I created a scene for both the AI and player characters (Character Body 2D.)
Each scene has their own Area2D (to detect collisions), each named different things (charge_area for AI, player_area for the player)

For the last few days, this has been working but now, the AI signal is somehow overwriting the player signal. Meaning that, while the movement code for the player is working, the player colliding with any other 2D body does nothing. However RANDOMLY it does for some reason???

Godot keeps referencing “await get_tree().create_timer(0.01).timeout”, which is in a loop to charge at the player until it hits a wall.
func CHARGE():
holdVect = Demo.velocity
await get_tree().create_timer(0.01).timeout
Demo.velocity = Demo.velocity * 1.05

while collision == 0:
#charged and D_end is to stop any other code from rerunning
charged = 1
ahead = 0
await CHARGE()
D_end = 1

Player signals suddenly stopped working when I changed code for an AI. I have tried resignalling to no avail. Please help