Do you have the signal connected? Maybe something with the signal connection is not working?
Another way you may be able to work around the issue is by using the get_overlapping_bodies
(documentation) function and checking to see if the RigidBody2D is there. Something like this:
# assuming this script is attached to the Area2D
for body_in_area in get_overlapping_bodies():
# optional: check to make sure the name of the RigidBody is "hit" or something
# so only the rigidbody we want will trigger a print statement
if (body_in_area.name == "hit"):
print ("ah!")
# for deleting, something like this *should* work
# body_in_area.queue_free()
break # we found the hit, so no reason to go through the other bodies.