TelemetryDeck / Issues

When something is wrong in TelemetryDeck-Land, or if you have a cool idea how to make things better, this is the place to create an Issue.
https://telemetrydeck.com
36 stars 0 forks source link

Non critical SDKs like TelemetryDeck shouldn't crash apps with fatalError when something is misconfigured #394

Closed KaiOelfke closed 2 months ago

KaiOelfke commented 3 months ago

Telemetry is almost never a critical feature at least in my opinion. I accidentally shipped an update where TelemetryDeck didn't end up being configured. This caused a ton of crashes as the TelemetryDeck SDK just uses a fatalError() instead of a more forgiving assertionFailure().

In most cases assertionFailure should highlight the issue during development. There could still be console warnings in release. But especially with the App Store review times it's better to not get logs for some time than to have a non functional app out there. It affects ratings, support tickets, conversion, people churn and that affects ASO rankings. So it's really bad.

If the console warnings are missed the developer will eventually notice there's no logs. The telemetry backend could even detect this anomaly and send a warning email.

If an app can't work without a SDK it's fine, if the SDK crashes the app. But if an app can work well without a SDK it shouldn't crash the app.

Jeehut commented 2 months ago

@KaiOelfke Thank you for bringing this up. You are totally right, and this was already reported nearly a year ago in https://github.com/TelemetryDeck/SwiftSDK/issues/112. But when investigating the code, I couldn't find any fatalError calls in the SDK anymore, and in fact it was fixed in March via https://github.com/TelemetryDeck/SwiftSDK/pull/146.

The only problem was that no new release of the SDK was made before you reported the same issue, which is a bummer. But just 3 days after you reported this, on May 23rd, version 2.0.0 of the SDK was released with the fix included. By the way, the major version upgrade was made because we renamed a bunch of things (see the release notes for details) – but upgrading shouldn't break your code, just introduce a couple of warnings with fix-its to migrate to the streamlined naming conventions.

So this shouldn't affect any new users anymore! 🎉 Closing. Thanks again for reporting! 💯