Skip to content

onPlaybackResumption() returning exception leads to hard-to-debug ForegroundServiceDidNotStartInTimeException #2591

@nift4

Description

@nift4

Version

Media3 main branch

More version details

No response

Devices that reproduce the issue

Android 12 and later

Devices that do not reproduce the issue

older devices

Reproducible in the demo app?

Yes

Reproduction steps

  1. Press "Play" button on headset
  2. ensure onPlaybackResumption() returns exception (or: just don't override it at all)

Expected result

useful crash

Actual result

App crashes with ForegroundServiceDidNotStartInTimeException because media button reciever (by default) always forwards play events, app returns some exception so the play handling just moves player to STATE_ENDED (empty playlist after all), which is not considered engaging (and rightfully so), hence there's no attempt to start into foreground and we crash.

Though these are properly logged to logcat, these crashes are hard to debug when just looking at Crashlytics, which is why I think there's potential for improvement here. If we know for sure we're going to crash anyway, we might as well re-throw the exception in the future as cause for some IllegalStateException explaining the problem.

Media

Not applicable

Bug Report

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions