February 8th, 2023

0.41.5 released to fix unexpected crashes

Neil J.
Founder
SHARE THIS POST

Today, we received a large number of reports that Mimestream suddenly began crashing frequently. This crash was caused by an apparent change in the Gmail API’s behavior this morning, resulting in unexpected data being returned to the app.

We’ve released 0.41.5 with a fix for this issue. To avoid interruptions, we recommend updating immediately. If you’re able to use the app without it crashing, you can use the in-app updater. If the updater can’t find an update, you’re already up-to-date.

Q: What if the app crashes before I can even update?

If you’re unable to run the app long enough to update without it crashing, you can manually download the update. After opening the disk image, drag Mimestream to /Applications, and choose “Replace” in the Finder prompt that appears.

Q: What if I am on macOS 10.15 Catalina?

This issue only applies to versions running on macOS 11 and macOS 12. This does not apply to 0.35.6, the final update for macOS 10.15 – no action is needed if you are on this OS version.

Technical Review and Improvements Made

Mimestream uses the Gmail API users.settings.forwardingAddresses.list method to sync the account’s forwarding addresses. Around 7:30AM EST on February 8th, 2023, this method began to return a 204 NO CONTENT response. This triggered a never-before-exercised codepath in Mimestream that led to this crash. Although we can’t be certain what the exact previous response was, we believe it used to be a 200 OK with an empty body.

To prevent a response like this from crashing Mimestream in the future, we’ve conducted an in-depth review of our response handling logic, and have patched all cases that could lead to crashes like this. We have added automated unit tests to verify the response handling, using an in-memory mock server to simulate this type of response.

In addition, we have implemented crash-loop detection and the ability to launch in a “Safe Mode” that checks for available updates before showing any UI or beginning synchronization.