[SignalR Java client]: signalr-messagepack 8.0.24 drops Android 7 support in a patch release
- 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
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