dotnet / dotnet/aspnetcore

[SignalR Java client]: signalr-messagepack 8.0.24 drops Android 7 support in a patch release

Open
#68,893 1 comment 0 reactions 0 assignees View on GitHub
area-signalr
Dominant language
C#
Stars
38.4k
Forks
10.9k
Avg merge
2d 5h
Merged PRs (30d)
276

Description

signalr-messagepack 8.0.23 depends on jackson-dataformat-msgpack 0.8.20, 8.0.24 moved to 0.9.11. That pulls jackson-databind 2.18 instead of 2.9. Jackson's release notes call 2.13 the "last branch for Android SDK 21+", with "SDK 26 minimum for 2.14", so the effective minimum Android API of this artifact moved from 21 to 26 - meaning API 21-25, Android 5.0 through 7.1, stopped working.

The result is that any Android app running below API 26 crashes as soon as the hub connection is built:

java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/BootstrapMethodError;
at com.fasterxml.jackson.databind.util.ExceptionUtil.isFatal
at com.fasterxml.jackson.databind.ObjectMapper.
at com.microsoft.signalr.messagepack.MessagePackHubProtocol.

Verified on an Android 7.0 emulator with an app that only changed this one dependency: 8.0.23 connects to the hub normally, 8.0.24 and later crash before the UI appears.

What makes this awkward is that it happened in a patch release inside the .NET 8 LTS line. Teams pick an LTS line precisely to avoid this kind of change, and there is nothing in the release notes to suggest a whole platform stopped working.

Consumers cannot fix it by pinning jackson: msgpack 0.9.11 needs a GeneratorBase constructor introduced in jackson-core 2.15, so downgrading jackson fails later with NoSuchMethodError. The only workaround is forcing jackson-dataformat-msgpack back to 0.9.3, which is fragile across future SignalR updates.

Would you consider keeping the 8.0.x LTS line on a msgpack version that still works on older Android, or at least documenting the minimum Android API for the Java client? Android 5 through 7 is still in real use, particularly outside Western markets, and these users simply see the app crash on launch.

Contributor guide

Open the contributing guide

Research direction

Start at the SignalR Java client's MessagePackHubProtocol initialization and its signalr-messagepack dependency declarations; compare the 8.0.23 and 8.0.24 Jackson and MessagePack versions. Reproduce the failure on an Android API 21–25 emulator, then verify that the chosen compatibility or documentation change accurately states the supported minimum API.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.