OnTriggerStay not being called properly

Hi everyone. Im making a top down game where, to attack, the player
has 4 triggers 1 above, 1 below, 1 on the right and 1 on the left, and i want that when an enemy
gets inside of one of them (im using OnTriggerStay in the enemy’s gameObject), and the key in the respective
direction gets pressed (im using GetKeyDown) a boolean called invincibility turns false
(which when its true, makes thefunction of recibing damage inside of the enemy
(called in update) not execute) once, for 1 frame, and the enemy’s health gets reduced
by 5 (they have 20 health)

what happens is that sometimes it works well, but sometimes it doesnt gets called

What is or are the reason this is happening? and how to solve it?