We are utilising the 6.0.2 version of the capacitor-community/intercom package, which is using a 12.x version of the Intercom Android SDK internally.
What seems to be happening is that when the plugin registers it is making an initial call to Intercom (probably for the reasons outlined in this thread:
Our JS implementation code does not do anything until the user logs in. At which point we call `setUserHash` and `registerIdentifiedUser` respectively. We then have a button that launches the intercom bubble (displayMessenger).
On a fresh install an Android 15 this works fine. We can login, click the button and intercom launches. On Android 16 it doesn’t. If you exit the app and restart it works fine from that point onwards.
When monitoring the logs on the Android 16 device, with a release build, we get this error immediately upon app launch, before the user has a chance to interact (or even grant permissions for things like push notifications):
Failed to register or update user: {"type":"error.list","request_id":"000g0chaasb5fvcvh9cg","errors":[{"code":"hmac_mismatch","message":"Identity Verification check failed: HMAC is invalid"}]}
We’ve verified it is not coming from our implementation code, because there are logs message immediately before that which are not called.
Like wise, on a local debug build, we see an exception with this message thrown:
A network request was made with no user registered on this device.Please call registerUnidentifiedUser() or registerIdentifiedUser(Registration)
Again, this is before an interaction or our code firing.
So the assumption is that the plugin or the SDK is making an initial call (as above). Is this correct? If this is a bug, is within the Intercom Android SDK or the capacitor plugin?