Are you sure the collision polygon for your buttons is wide enough ?
At times, a smaller collision polygon may give the impression touch is not recognized, when in fact it is the actual colliding surface which is so small that it makes it hard to properly click as intended.
The collision box is larger than the button. Pretty sure it's not this, as a lot of the reviews I've had state that the controls feel unusually good for a mobile game, and I spent a lot of time refining collision placement. Plus this can't be replicated on Android.
As I use 'is touching' a swipe of the finger onto the button triggers that action, so a user can control the player by moving their finger on and off the button without removing their finger from the screen. When this touch is missed, that no longer happens for the duration that that specific finger is in touch. It's like the device doesn't recognize there's a finger on screen for anything. If I put another finger on the screen, while the other one is still touching, it recognises that second touch and acts like expected, but still ignores the first. I'll need to do some more testing, but from what I can tell, spamming taps seems to be what triggers it.
It's definitely only happening on iPhone, but it's starting to hurt my overall ratings.
Here's an example of how I'm registering user input