My POS app makes use of the TextArea component, and up util recently I’ve had no issues. I’ve noticed today that the onChange handler for the component no longer works as expected. I’ve tested with a completely blank component, as per the docs:
Hey again @21O - thanks for flagging this and for sharing your snippet there. I think I was able to replicate the behaviour somewhat using the code above. Is this similar to what you’re seeing?
It looks like for me, the text does update at a certain point while I’m typing, but if I erase the text too quickly, I see essentially the same thing you are. Happy to investigate this further, just wanted to confirm if this is what you’re seeing. Hope to hear from you soon!
Apologies for not getting back to you. That’s not actaully the same bug as I’m seeing. I’m seeing the onChance event handler fire once, and then never again. It’s intersting that you’re not having the same issue - I assume you’re testing on the same depenency versions as me?
I wonder if the same potential issue is just manifesting differently on different OSes, just to confirm, I’m running this on version 10.12.2 of the POS app on Android 16. Are you running on iOS by any chance? Just want to narrow down the device type too to see if I can replicate. Hope to hear from you soon!
Just confirming the same issue persists when I upgraded my app version to 10.13 as well. This is definitely something we’d like to look into, but just wanted to wait to hear back from you
Thanks @21O, my hunch is that this might be the same issue, just showing up differently depending on device. I’ll keep digging into this for you on our end here and loop back with you once I have more info to share.
Hey @21O - thanks for your patience on this, just wanted to loop back with you to let you know that we are investigating this as a possible bug and have logged a bug investigation ticket on our end internally. I can’t guarantee a turnaround time, but wanted to loop back here to let you know we are still investigating.
Hi @21O@Alan_G , I think I’m experiencing the same issue, the <TextArea> POS component only returns the first character in the onChange callback.
I found that it only happens on iOS/iPadOS 26. I tested using the same device (iPad Pro 4th gen) and the same code — it worked normally on iPadOS 18, but once I updated the device to iPadOS 26, the bug started occurring.
Here is the list of devices I tested:
Thanks @Minh_Duong for flagging this too, it does seem like the same issue. I’ll share your info internally on my end here. We still have this logged as something to look into, so I appreciate you flagging this too.
Thanks @21O for confirming it seems to be an Apple only issue as well - very odd. I’ll keep my eye on this and get back in touch when I can confirm a fix/next steps.
Hey folks - we pushed a fix for this about a month ago, just wanted to circle back to see if you’re still seeing this issue. If so, feel free to tag me here and I’d be happy to take another look.
Hi @Alan_G I’m getting reports of what sounds like this issue occurring today from some of my merchants, the behaviour they are describing sounds like the onChange callback is not working for TextArea or TextField. They’ve reported that the issue started occurring after updating their devices to 26.2.1.
I haven’t been able to reproduce yet myself as I don’t have an iOS device running v26, my older v18 device is not exhibiting this behaviour.
Hi @Alan_G sorry for the delay, yes I can reproduce this using your minimal example, I added the following logging to verify that the setText method was not being called:
For what it’s worth, I’ve also encountered this issue. A client reported it to me about a week ago which seems to align with the timing in this thread. My guess is their POS iPad updated to iOS 26 around that time, but I’ve yet to confirm.
I’ve also worked around this by switching onChange to onInput. I’m a little concerned that this broke without warning.
I was able to do some further digging into this and can confirm this is expected behaviour
The onChange callback for TextArea and TextField in POS UI Extensions is designed to fire when the user finishes editing (typically on blur/unfocus), not on every keystroke. This is documented her in our TextArea API reference:
onChange - “The callback when the user has finished editing a field.”
The reason for this design is to avoid performance issues with rapid state updates during typing, especially on lower-powered devices.
For realtime, you should be able to use onInput as your workaround like you mentioned @johnholdun - though note the docs do mention this is intended for side effects like clearing validation errors rather than primary state management. That said, if it’s working for your use case, it should be fine to continue using it.
If you’re seeing onChange not fire even when unfocusing the field, that could be a potential issue - so please me know if you do see that.