We recently hit an issue where our app was setting pushIntegrationName to an invalid value on initialization. This resulted in error responses from the /api/users/registerDeviceToken endpoint.
As near as I can tell, this error is being silently eaten somewhere in the native layer (iOS in this case) and never making it back to our code. Our call to setEmail returned successfully and no exception was thrown. I only figured out what was happening by throwing a proxy between our app and the Iterable API.