Misread a spam message's subject as "air-gapped vegan backups"… 😂
@matigo It is. It was a pure lucky guess that we found out that the device identifier was the root cause. Should we have not had this chance to test with the real device this issue would have remained a mystery.
@matigo Indeed. And all we had in our logs was just socket creation errors. Luckily we got one of those devices and were able to figure out why we have these issues.
In today's episode of WTF IT, we finally identified why Xiaomi 12 Pro users could not get a connection established between our app and the backend. Apparently the device's User-Agent contains the word "zeus", which is then blocked by the backend's firewall (because of this [en.wikipedia.org]).
We let the backend guys know that they need to adjust their firewall settings to let these devices through. There are other things in the User-Agent string that they can use to identify that device, so they can whitelist it instead blocking it.
We did some digging on the app analytics and it seems that the funky iOS issue is affecting only devices with iOS 12.1 or older. Luckily for us, our minimum is iOS 12 and we have had only 35 users in the past 4 weeks that would be affected by this. Out of ~81k iOS we have in total, those who might encounter this represent a minuscule share of our users. However, that is 35 users too much. Thanks, Apple.
// @matigo
Well, the issue with the older iOS versions where the apps crash at launch seems to be caused by Apple's processing. They have changed something in the early September that is now causing this issue. Hooray. Expecting some angry feedback from the end users about an issue we cannot fix in any way…
@matigo Yep. Especially when I am the one who does not do day-to-day development anymore, instead I am replying to questions for the ongoing feature development and preparing the upcoming things to be as clear as possible. That does not leave me much time to do coding myself, which then slows things down a lot.
Finally getting that major rewrite done. Now I need to debug one UI refresh issue, then I can delete some old code. Took a lot longer than I would have wanted, but now the feature will be more robust than before.