Skip to content

Possible Sentry backward compatibility issue between 5.6.0 and 5.11.2 #4397

Description

@minori-fh

Package

Sentry.Maui

.NET Flavor

.NET

.NET Version

9.0.300

OS

iOS

OS Version

No response

Development Environment

Rider 2024 (MacOS)

SDK Version

5.6.0

Self-Hosted Sentry Version

No response

Workload Versions

android 35.0.61/9.0.100 SDK 9.0.300

ios 18.4.9289/9.0.100 SDK 9.0.300

maui-android 9.0.51/9.0.100 SDK 9.0.300

maui-ios 9.0.51/9.0.100 SDK 9.0.300

maui-tizen 9.0.51/9.0.100 SDK 9.0.300

UseSentry or SentrySdk.Init call

Pending

Steps to Reproduce

  1. Create a .NET MAUI iOS app using JetBrains Rider on macOS.
  2. Add the Sentry NuGet package v5.6.0 to the project.
  3. Build and run the app on a physical iOS device (e.g., iPhone XR) — app should launch successfully.
  4. Upgrade the Sentry NuGet to v5.11.2, build and run the app again. During testing, cause a crash (e.g., null reference).
  5. Downgrade Sentry back to v5.6.0.
  6. Perform a clean build (remove /bin and /obj), uninstall the app from the iPhone, then redeploy using Rider.

Expected Result

App should run successfully after downgrade.

Actual Result

On launch, the app crashes at startup with the following error in Xcode logs:

Exception Type: EXC_CRASH (SIGABRT)
Termination Reason: DYLD 4 Symbol missing
Symbol not found: _OBJC_CLASS_$_SentryEventDecodable

Activity

  1. added
    BugSomething isn't working
    .NETPull requests that update .net code
    on Jul 27, 2025
  2. moved this to Waiting for: Product Owner in GitHub Issues with 👀 3on Jul 27, 2025
  3. minori-fh commented on Jul 27, 2025

    @minori-fh
    Author
  4. Flash0ver commented on Jul 28, 2025

    @Flash0ver
    Contributor

    We marked versions 5.6.0 through 5.7.0 as deprecated,
    due to critical bugs on iOS applications using Sentry.
    See also #4202.

    The fix is to update to 5.8.0 or later.

  5. moved this from Waiting for: Product Owner to No status in GitHub Issues with 👀 3on Jul 28, 2025
  6. Flash0ver commented on Jul 28, 2025

    @Flash0ver
    Contributor

    Context:
    SentryEventDecodable was added in sentry-cocoa 8.45.0,
    where sentry-dotnet 5.6.0 added it, but sentry-dotnet 5.8.0 no longer has it.

    There should not be an issue with stored events from 5.8.0+ persisted on the device, where 5.6.0 could fail to decode them, because the Cocoa SDK doesn't call the decoding logic. Also, nothing changed how the Cocoa SDK serializes events to disk between these versions.

    The issue seems to be related to how Sentry.framwork is linked.


    The issue may be caused through some leftover / stale files after the downgrade.
    Perhaps the .NET iOS Workload does not register some files to be cleaned (i.e. <Clean Include=".." />).

    If a Clean / Rebuild does not resolve the issue (in cases that the .NET iOS Workload does not clean up all resources),
    a git clean -dfx just might.

    Could also be related to files outside of the code repository that uses Sentry:
    For example Xcode: see ~/Library/Developer/Xcode/DerivedData
    and/or an Xcode project that needs to be regenerated.


    Although the deprecated versions [5.6.0,5.7.0] cannot be fixed retroactively,
    and also the problem may not be directly related to the Sentry .NET SDK, but to the .NET iOS Workload,
    perhaps we can uncover a local caching problem and provide guidance via Troubleshooting documentation.

  7. jpnurmi commented on Aug 6, 2025

    @jpnurmi
    Collaborator

    Hi @minori-fh, we should have a fix (#4411) for the upgrade problem. Could you give it a try with the 5.14.0-alpha.1 pre-release?

  8. jpnurmi commented on Aug 29, 2025

    @jpnurmi
    Collaborator

    Fixed by #4411, which will be available in the next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    .NETPull requests that update .net codeBugSomething isn't working

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions