jellyfin / jellyfin-android

Android Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
1.45k stars 241 forks source link

ArgumentOutOfRangeException when playing any media from Android with the integrated player #1452

Open Max-Pare opened 1 month ago

Max-Pare commented 1 month ago

This issue respects the following points:

Description of the bug

When trying to play any movie from the Jellyfin android app while the integrated player is selected in the settings, the video does not play and the logs section reports as follows:

[2024-07-18 12:27:32.685 +00:00] [ERR] [28] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "POST" "/Sessions/Playing/Stopped".
System.ArgumentOutOfRangeException: The PlaybackStopInfo's PositionTicks was negative. (Parameter 'info')

Reproduction steps

  1. login to Jellyfin server from android
  2. select "integrated player" from "client settings"
  3. play any movie
  4. error!

What is the current bug behavior?

The video does not play and the error listed above occurs.

What is the expected correct behavior?

The video should play.

Jellyfin Server version

10.9.7

Specify commit id

No response

Specify unstable release number

No response

Specify version number

No response

Specify the build version

10.9.7

Environment

- OS: Ubuntu server 24.04
- Linux Kernel: Linux 6.8.0-38-generic x86_64
- Virtualization: Docker
- Clients: Android
- Browser: Jellyfin android app (Play store)
- FFmpeg Version: FFmpeg shipped with the docker image
- Playback Method: N/A (not an FFmpeg error)
- Hardware Acceleration: VA-API
- GPU Model: Intel HD630
- Plugins: none
- Reverse Proxy: Caddy
- Base URL: none
- Networking: Generic ISP wireless router (ZTE), server is connected via CAT6 to router
- Storage: 2 x 1TB WD BLUE (RAID1)

Jellyfin logs

[2024-07-18 12:27:32.685 +00:00] [ERR] [28] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "POST" "/Sessions/Playing/Stopped".
System.ArgumentOutOfRangeException: The PlaybackStopInfo's PositionTicks was negative. (Parameter 'info')
   at Emby.Server.Implementations.Session.SessionManager.OnPlaybackStopped(PlaybackStopInfo info)
   at Jellyfin.Api.Controllers.PlaystateController.ReportPlaybackStopped(PlaybackStopInfo playbackStopInfo)
   at lambda_method1251(Closure, Object)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Jellyfin.Api.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
   at Jellyfin.Api.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
   at Jellyfin.Api.Middleware.IPBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
   at Jellyfin.Api.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Jellyfin.Api.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Jellyfin.Api.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
   at Jellyfin.Api.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
   at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
   at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context)

FFmpeg logs

No FFmpeg logs are logged when this error occurs

Client / Browser logs

No response

Relevant screenshots or videos

Screenshot_20240718_162104_Jellyfin

Additional information

Hardware acceleration is setup correctly and works on IOS, Windows and Fire TV, all unsupported formats are unchecked in the HWA settings.

DaRealHansForSure commented 1 month ago

Yes i also run into that issue, rewrote the part of the server to accept "signed ints". Some Players (Clients) sent sometimes "-1", don't know why and Jellyfin Endpoint can't handle it.