[GH-ISSUE #80] [Bug]: Error reporting playback progress #56

Open
opened 2026-03-23 20:35:30 +00:00 by mirror · 5 comments
Owner

Originally created by @Arubinu on GitHub (Dec 18, 2025).
Original GitHub issue: https://github.com/tubearchivist/tubearchivist-jf-plugin/issues/80

I've read the documentation

  • I'm running the latest version of tubearchivist-jf-plugin.
  • I'm running the latest version of TubeArchivist.
  • I have read the how to open an issue guide, particularly the bug report section.
  • I have searched for both closed and open already existing issues about the problem I am reporting.

Operating System

LXC Dockge (Docker)

Your Bug Report

Describe the bug

The folder names (and probably video names) are not renamed and retain the IDs format.

Steps To Reproduce

Since updating Jellyfin to v10.11.5, the plugin is no longer working; the following errors appear in the logs.

Expected behavior

Name the media correctly to remove the ID.

Relevant Jellyfin log output

[2025-12-18 16:25:46.617 +01:00] [ERR] Error reporting playback progress
System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1<Jellyfin.Data.Entities.User> MediaBrowser.Controller.Library.PlaybackProgressEventArgs.get_Users()'.
   at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs)
   at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated)
   at MediaBrowser.Controller.Session.SessionInfo.OnProgressTimerCallback(Object state)
[2025-12-18 16:25:46.859 +01:00] [ERR] Error processing request. URL "POST" "/Sessions/Playing/Progress".
System.TypeLoadException: Could not load type 'Jellyfin.Data.Entities.User' from assembly 'Jellyfin.Data, Version=10.11.5.0, Culture=neutral, PublicKeyToken=null'.
   at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs)
   at Emby.Server.Implementations.Library.UserDataManager.SaveUserData(User user, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated)
   at Jellyfin.Api.Controllers.PlaystateController.ReportPlaybackProgress(PlaybackProgressInfo playbackProgressInfo)
   at lambda_method49344(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 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)

Anything else?

Since the Jellyfin update, even my Android app can't communicate with it to retrieve the list of titles in my media library!

Originally created by @Arubinu on GitHub (Dec 18, 2025). Original GitHub issue: https://github.com/tubearchivist/tubearchivist-jf-plugin/issues/80 ### I've read the documentation - [x] I'm running the latest version of tubearchivist-jf-plugin. - [x] I'm running the latest version of TubeArchivist. - [x] I have read the [how to open an issue](https://github.com/tubearchivist/tubearchivist/blob/master/CONTRIBUTING.md#how-to-open-an-issue) guide, particularly the [bug report](https://github.com/tubearchivist/tubearchivist/blob/master/CONTRIBUTING.md#bug-report) section. - [x] I have searched for both closed and open already existing issues about the problem I am reporting. ### Operating System LXC Dockge (Docker) ### Your Bug Report ## Describe the bug The folder names (and probably video names) are not renamed and retain the IDs format. ## Steps To Reproduce Since updating Jellyfin to v10.11.5, the plugin is no longer working; the following errors appear in the logs. ## Expected behavior Name the media correctly to remove the ID. ### Relevant Jellyfin log output ```shell [2025-12-18 16:25:46.617 +01:00] [ERR] Error reporting playback progress System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1<Jellyfin.Data.Entities.User> MediaBrowser.Controller.Library.PlaybackProgressEventArgs.get_Users()'. at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs) at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated) at MediaBrowser.Controller.Session.SessionInfo.OnProgressTimerCallback(Object state) [2025-12-18 16:25:46.859 +01:00] [ERR] Error processing request. URL "POST" "/Sessions/Playing/Progress". System.TypeLoadException: Could not load type 'Jellyfin.Data.Entities.User' from assembly 'Jellyfin.Data, Version=10.11.5.0, Culture=neutral, PublicKeyToken=null'. at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs) at Emby.Server.Implementations.Library.UserDataManager.SaveUserData(User user, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken) at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated) at Jellyfin.Api.Controllers.PlaystateController.ReportPlaybackProgress(PlaybackProgressInfo playbackProgressInfo) at lambda_method49344(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 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) ``` ### Anything else? Since the Jellyfin update, even my Android app can't communicate with it to retrieve the list of titles in my media library!
Author
Owner

@Jurrer commented on GitHub (Dec 21, 2025):

I can say, plugin works fine on v10.11.5 on my end.
Maybe the plugin did not get updated properly? Did you try reinstalling it?

<!-- gh-comment-id:3678783252 --> @Jurrer commented on GitHub (Dec 21, 2025): I can say, plugin works fine on v10.11.5 on my end. Maybe the plugin did not get updated properly? Did you try reinstalling it?
Author
Owner

@Arubinu commented on GitHub (Dec 22, 2025):

I just did it properly to be sure that wasn't the problem, and here are the resulting errors.:

[2025-12-22 00:02:17.855 +01:00] [ERR] Error processing request. URL "POST" "/Sessions/Playing/Progress".
System.TypeLoadException: Could not load type 'Jellyfin.Data.Entities.User' from assembly 'Jellyfin.Data, Version=10.11.5.0, Culture=neutral, PublicKeyToken=null'.
   at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs)
   at Emby.Server.Implementations.Library.UserDataManager.SaveUserData(User user, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated)
   at Jellyfin.Api.Controllers.PlaystateController.ReportPlaybackProgress(PlaybackProgressInfo playbackProgressInfo)
   at lambda_method49344(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 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)
[2025-12-22 00:02:18.321 +01:00] [ERR] Error processing request. URL "POST" "/Sessions/Playing".
System.TypeLoadException: Could not load type 'Jellyfin.Data.Entities.User' from assembly 'Jellyfin.Data, Version=10.11.5.0, Culture=neutral, PublicKeyToken=null'.
   at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs)
   at Emby.Server.Implementations.Library.UserDataManager.SaveUserData(User user, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Session.SessionManager.OnPlaybackStart(PlaybackStartInfo info)
   at Jellyfin.Api.Controllers.PlaystateController.ReportPlaybackStart(PlaybackStartInfo playbackStartInfo)
   at lambda_method49158(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 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)
[2025-12-22 00:02:19.321 +01:00] [ERR] Error reporting playback progress
System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1<Jellyfin.Data.Entities.User> MediaBrowser.Controller.Library.PlaybackProgressEventArgs.get_Users()'.
   at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs)
   at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated)
   at MediaBrowser.Controller.Session.SessionInfo.OnProgressTimerCallback(Object state)
<!-- gh-comment-id:3683077038 --> @Arubinu commented on GitHub (Dec 22, 2025): I just did it properly to be sure that wasn't the problem, and here are the resulting errors.: ``` [2025-12-22 00:02:17.855 +01:00] [ERR] Error processing request. URL "POST" "/Sessions/Playing/Progress". System.TypeLoadException: Could not load type 'Jellyfin.Data.Entities.User' from assembly 'Jellyfin.Data, Version=10.11.5.0, Culture=neutral, PublicKeyToken=null'. at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs) at Emby.Server.Implementations.Library.UserDataManager.SaveUserData(User user, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken) at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated) at Jellyfin.Api.Controllers.PlaystateController.ReportPlaybackProgress(PlaybackProgressInfo playbackProgressInfo) at lambda_method49344(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 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) [2025-12-22 00:02:18.321 +01:00] [ERR] Error processing request. URL "POST" "/Sessions/Playing". System.TypeLoadException: Could not load type 'Jellyfin.Data.Entities.User' from assembly 'Jellyfin.Data, Version=10.11.5.0, Culture=neutral, PublicKeyToken=null'. at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs) at Emby.Server.Implementations.Library.UserDataManager.SaveUserData(User user, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken) at Emby.Server.Implementations.Session.SessionManager.OnPlaybackStart(PlaybackStartInfo info) at Jellyfin.Api.Controllers.PlaystateController.ReportPlaybackStart(PlaybackStartInfo playbackStartInfo) at lambda_method49158(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 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) [2025-12-22 00:02:19.321 +01:00] [ERR] Error reporting playback progress System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1<Jellyfin.Data.Entities.User> MediaBrowser.Controller.Library.PlaybackProgressEventArgs.get_Users()'. at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs) at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated) at MediaBrowser.Controller.Session.SessionInfo.OnProgressTimerCallback(Object state) ```
Author
Owner

@fazadaoc commented on GitHub (Jan 11, 2026):

i'm not sure if it's related to this issue but since updating to jellyfin 10.11.x and installing ta-jf plugin i could not see any event of media play in jelly's activity
i described the issue here https://github.com/jellyfin/jellyfin/issues/15992
i had a constant repeat of this:

[2026-01-10 19:17:35.778 +01:00] [ERR] [32] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "POST" "/Sessions/Playing/Progress".
System.TypeLoadException: Could not load type 'Jellyfin.Data.Entities.User' from assembly 'Jellyfin.Data, Version=10.11.5.0, Culture=neutral, PublicKeyToken=null'.
at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs)
at Emby.Server.Implementations.Library.UserDataManager.SaveUserData(User user, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken)
at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated)
at Jellyfin.Api.Controllers.PlaystateController.ReportPlaybackProgress(PlaybackProgressInfo playbackProgressInfo)
at lambda_method247507(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.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask1 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 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) [2026-01-10 19:17:36.528 +01:00] [ERR] [10] Emby.Server.Implementations.Session.SessionManager: Error reporting playback progress System.MissingMethodException: Method not found: 'System.Collections.Generic.List1<Jellyfin.Data.Entities.User> MediaBrowser.Controller.Library.PlaybackProgressEventArgs.get_Users()'.
at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs)
at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated)
at MediaBrowser.Controller.Session.SessionInfo.OnProgressTimerCallback(Object state)
[2026-01-10 19:17:37.528 +01:00] [ERR] [10] Emby.Server.Implementations.Session.SessionManager: Error reporting playback progress
System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1<Jellyfin.Data.Entities.User> MediaBrowser.Controller.Library.PlaybackProgressEventArgs.get_Users()'.
at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs)
at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated)
at MediaBrowser.Controller.Session.SessionInfo.OnProgressTimerCallback(Object state)

despite having the sync deactivated both ways

once i removed the plugin i could see again videoPlayback start/end events

<!-- gh-comment-id:3735176877 --> @fazadaoc commented on GitHub (Jan 11, 2026): i'm not sure if it's related to this issue but since updating to jellyfin 10.11.x and installing ta-jf plugin i could not see any event of media play in jelly's activity i described the issue here https://github.com/jellyfin/jellyfin/issues/15992 i had a constant repeat of this: > [2026-01-10 19:17:35.778 +01:00] [ERR] [32] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "POST" "/Sessions/Playing/Progress". > System.TypeLoadException: Could not load type 'Jellyfin.Data.Entities.User' from assembly 'Jellyfin.Data, Version=10.11.5.0, Culture=neutral, PublicKeyToken=null'. > at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs) > at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) > at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnWatchedStatusChange(Object sender, UserDataSaveEventArgs eventArgs) > at Emby.Server.Implementations.Library.UserDataManager.SaveUserData(User user, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken) > at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated) > at Jellyfin.Api.Controllers.PlaystateController.ReportPlaybackProgress(PlaybackProgressInfo playbackProgressInfo) > at lambda_method247507(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 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) > [2026-01-10 19:17:36.528 +01:00] [ERR] [10] Emby.Server.Implementations.Session.SessionManager: Error reporting playback progress > System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1<Jellyfin.Data.Entities.User> MediaBrowser.Controller.Library.PlaybackProgressEventArgs.get_Users()'. > at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs) > at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) > at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs) > at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated) > at MediaBrowser.Controller.Session.SessionInfo.OnProgressTimerCallback(Object state) > [2026-01-10 19:17:37.528 +01:00] [ERR] [10] Emby.Server.Implementations.Session.SessionManager: Error reporting playback progress > System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1<Jellyfin.Data.Entities.User> MediaBrowser.Controller.Library.PlaybackProgressEventArgs.get_Users()'. > at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs) > at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) > at Jellyfin.Plugin.TubeArchivistMetadata.Plugin.OnPlaybackProgress(Object sender, PlaybackProgressEventArgs eventArgs) > at Emby.Server.Implementations.Session.SessionManager.OnPlaybackProgress(PlaybackProgressInfo info, Boolean isAutomated) > at MediaBrowser.Controller.Session.SessionInfo.OnProgressTimerCallback(Object state) despite having the sync deactivated both ways once i removed the plugin i could see again _videoPlayback_ start/end events
Author
Owner

@focustense commented on GitHub (Mar 22, 2026):

While this issue was obviously caused by an upstream change and isn't really the fault of the plugin, it is nevertheless a nastier bug than the original report implies, because the same or similar hook runs on events like OnWatchedStatusChange in response to actions like MarkPlayed, for all Jellyfin content, not just YouTube/TA videos.

In other words, as long as the TubeArchivistMetadata plugin is installed, it is impossible to perform certain actions in Jellyfin like marking a movie, episode, season or show as watched, or favoriting/un-favoriting. Desktop clients will silently fail to perform their action (with a similar message about the missing Jellyfin.Data.Entities.User in the server log), and Android clients will crash outright.

I can verify by uninstalling the TA plugin, seeing that these actions begin working again, and then reinstalling the TA plugin and observing them break again.

The issue may have been flying under the radar for a while because, for whatever reason, the up next/continue watching features of Jellyfin still seemed to work for at least some content despite certain less-visible aspects failing (see e.g. fazadaoc's comment). It seems that progress reporting is only subtly broken, whereas changing watched status, favorite status, etc. through the UI (i.e. anything that needs to call SaveUserData) is fully broken for all videos.

I don't know if the AI-assisted commit linked above is a proper fix, as refactors that involve moving/renaming types often involve more significant architecture changes, and the author did not even merge it in his own fork... but if it does fix the issue then it would be swell to see it pulled in sometime soon.

<!-- gh-comment-id:4106657838 --> @focustense commented on GitHub (Mar 22, 2026): While this issue was obviously caused by an upstream change and isn't really the fault of the plugin, it is nevertheless a nastier bug than the original report implies, because the same or similar hook runs on events like `OnWatchedStatusChange` in response to actions like `MarkPlayed`, _for all Jellyfin content_, not just YouTube/TA videos. In other words, as long as the TubeArchivistMetadata plugin is installed, it is impossible to perform certain actions in Jellyfin like marking a movie, episode, season or show as watched, or favoriting/un-favoriting. Desktop clients will silently fail to perform their action (with a similar message about the missing `Jellyfin.Data.Entities.User` in the server log), and Android clients will crash outright. I can verify by uninstalling the TA plugin, seeing that these actions begin working again, and then reinstalling the TA plugin and observing them break again. The issue may have been flying under the radar for a while because, for whatever reason, the up next/continue watching features of Jellyfin still seemed to work for at least some content despite certain less-visible aspects failing (see e.g. fazadaoc's comment). It seems that progress reporting is only subtly broken, whereas changing watched status, favorite status, etc. through the UI (i.e. anything that needs to call `SaveUserData`) is fully broken for all videos. I don't know if the AI-assisted commit linked above is a proper fix, as refactors that involve moving/renaming types often involve more significant architecture changes, and the author did not even merge it in his own fork... but if it _does_ fix the issue then it would be swell to see it pulled in sometime soon.
Author
Owner

@ferrouswheel commented on GitHub (Mar 22, 2026):

Re: my claude commit. It worked for me locally, but wasn't confident enough in it being the solution to submit a PR here.

As I recall, I believe I found evidence that the plugin lost my settings including auth for tubearchivist, and I also recompiled with the new changes from Claude.

Thus I was unsure if I was actually experiencing the same bug, had lost my settings before/after the bug, or something else. But making sure settings were filled in and recompiling with updated Jellyfin, got things working for me.

<!-- gh-comment-id:4106699512 --> @ferrouswheel commented on GitHub (Mar 22, 2026): Re: my claude commit. It worked for me locally, but wasn't confident enough in it being the solution to submit a PR here. As I recall, I believe I found evidence that the plugin lost my settings including auth for tubearchivist, and I also recompiled with the new changes from Claude. Thus I was unsure if I was actually experiencing the same bug, had lost my settings before/after the bug, or something else. But making sure settings were filled in and recompiling with updated Jellyfin, got things working for me.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tubearchivist/archived-tubearchivist-jf-plugin#56
No description provided.