Apple lit a fire...

A few months ago, some of our users on iOS devices starting experiencing issues with data not writing. This initially manifested itself as several issues in Squeegee:

  • Data reverting on local device (although still syncing if there was a connection).
  • Invoice duplication (caused by user redoing changes that had partially be done).
  • Replan’s causing duplicate appointments.
  • Error when returning to the app from backgrounding.
  • Data being completely lost.
  • Sign in error and app not loading at all
  • App spontaneously reloading / crashing.

Needless to say none of these errors occur on Android devices. If you have any sort of significant amount of data on iOS you most definitely will of been impacted by this issue.

Many of the bugs above were directly caused by an intermittent error which was returned by iOS when trying to write data to the device. Admittedly some have been caused by our frantic attempts to work around the issue by finding alternative approaches to writing data.

After much research we discovered the underlying issue was caused by an iOS 12 update (likely iOS 12.2) and has been raised with Apple for many weeks now without any official acknowledgement of it or indeed that it will be fixed. As such this issue does not just impact Squeegee but 1000’s of frameworks and apps that rely on this technology. It has been left to the developer community to spend countless hours diagnosing, researching and attempting to work around the problem, which in some cases has been impossible (some providers have removed support of iOS data storage altogether). 

The issue has been raised on an official bug reporting channel that Apple looks at in an attempt to get some sort of resolution. Comments from an Apple employee suggest it is on their radar but they will not confirm / deny if and when it will be fixed. There was hope it would of been fixed in iOS 12.3 that was just released but the most recent post suggests it has been fixed in iOS 13 beta and won’t be fixed in earlier versions of iOS. If this is true, it causes a major headache for us because iOS 13 is only supported on newer IOS devices of around 4-5 years old and newer. Many of our users have been able to take advantage of the fact Squeegee will run perfectly well on older (and cheaper) iOS devices. 

Over the last few weeks we have spent countless hours attempting to resolve the issue as we want to ensure the squeegee still works correctly on older devices. However many of our attempts have uncovered other issues on iOS and it is getting to the point that we feel we can no longer support this stance. It is seriously impacting on our performance as a business and not least our users who have been so supportive of Squeegee in the past but understandably can’t continue to endure with these sorts of issues.

At this point we are about to release Squeegee 1.7.4 which will contain our final work around for the problem, it will essentially handle the error by saving the unsaved data somewhere else temporarily, and reloading the entire app and reattempt to save the data to the index data store. The idea is that if you background the app and restore it and the error occurs you will simply see the app reload which might take a few more seconds as it sorts itself out. We are pretty confident that this will resolve the issue and mean that Squeegee remains operational for users who can’t get the fix by upgrading to iOS 13 in September.

Our goal with Squeegee is to create the least amount of friction for our users as possible but this issue has done the exact opposite! It  has been extremely frustrating for us, as we have a brilliant team that will pull out all the stops to fix anything, but it seems we have to accept at some point things are beyond our control.

However we have definitely learned some valuable lessons. We have big plans for the next major version of Squeegee that will help reduce our exposure to this sort of issue. We will also be trying to share much more with our users, ensuring that there is an alternative path so they can get on with their work despite problems with saving. As always we are interested in your feedback on this or any other edges that need sorting to make using Squeegee the smoothest experience we can!

The Squeegee Team