# Handing SCPErrorUnexpectedReaderError for Tap to Pay on iPhone

In iOS 26+ that came out in September 2025, Apple added 10 new error codes for Tap to Pay on iPhone. For Terminal SDK versions below 5.0, issues related to these errors will all appear as 5001 with the error code `SCPErrorUnexpectedReaderError` and error message "An unexpected reader error occurred".
In our Terminal SDK for versions 5.0 and above, we mapped Apple's new error codes as described in the table below:
- Apple Error Code
- Mapped Stripe SDK Error Code >5.0.0
- Number
---
- .requestInterrupted
- SCPErrorTapToPayReaderRequestInterrupted
- 3905
---
- .storeAndForwardNotAllowed
- SCPErrorUnexpectedReaderError
- 5001
---
- .storeAndForwardSessionExpired
- SCPErrorUnexpectedReaderError
- 5001
---
- .storeAndForwardSessionInvalidated
- SCPErrorUnexpectedReaderError
- 5001
---
- .storeAndForwardTokenIssuerChanged
- SCPErrorUnexpectedReaderError
- 5001
---
- .readerInitializationFailed
- SCPErrorTapToPayInternalNetworkError
- 9041
---
- .readerNotAvailable
- SCPErrorTapToPayInternalNetworkError
- 9041
---
- .cardNotSupported
- SCPErrorCardNotSupported
- 6510
---
- .storeAndForwardDeclineFailed
- SCPErrorUnexpectedReaderError
- 5001
---
- .storeAndForwardResultNotFound
- SCPErrorUnexpectedReaderError
- 5001
If you upgrade your SDK to Terminal 5.0 or higher, you'll see these more granular, actionable messages.
If you're on SDK versions below Terminal 5.0, we recommend ensuring the application is always running in the foreground of the device, and not interrupted either by backgrounding the app, or by accepting a phone call, as readers disconnect when your application enters the background or when your iPhone loses connectivity. Learn more about [how to handle disconnects](https://docs.stripe.com/terminal/payments/connect-reader?terminal-sdk-platform=ios&reader-type=tap-to-pay#handle-disconnects).
If the application is uninterrupted in the foreground and you continue to see `SCPErrorUnexpectedReaderError`, we recommend factory resetting the device before attempting to accept payment again.
