jellyfin / jellyfin-plugin-playbackreporting

Playback Statistics Plugin for Jellyfin
https://jellyfin.org
GNU General Public License v3.0
66 stars 25 forks source link

[bug] Plugin fails to load in Jellyfin 10.9.0 (unstable) #80

Closed rigrig closed 5 months ago

rigrig commented 5 months ago

The plugin fails to load under Jellyfin 10.9.0 (unstable docker image)

I uninstalled+deleted the plugin folder, but after reinstalling it was still broken.

Plugin version:

13.2403.4.0 (from the unstable repo)

Server:

Version: 10.9.0 Web version: 10.9.0 Build version: 2024032505 Docker image: jellyfin/jellyfin:unstable (674432a05466) Host OS: Synology DSM 7.2-64561 (Linux Nella 3.10.108 #64561 SMP Fri May 19 01:32:53 CST 2023 x86_64 GNU/Linux synology_braswell_916+)

Installed Plugins:

AniDB 7.0.0.0: Active AniList 6.0.0.0: Active AniSearch 0.0.0.0: Active AudioDB 10.9.0.0: Active Fanart 10.0.0.0: Active IMVDb 3.0.0.0: Disabled Intro Skipper 0.1.16.4: NotSupported Intros 1.3.0.0: Disabled Kitsu 4.0.0.0: Active Kodi Sync Queue 9.0.0.0: Active ListenBrainz 3.4.1.0: NotSupported MusicBrainz 10.9.0.0: Active OMDb 10.9.0.0: Active Open Subtitles 19.0.0.0: Active Playback Reporting 13.2403.4.0: NotSupported SkinManager 1.5.0.0: Active Studio Images 10.9.0.0: Active TMDb 10.9.0.0: Active TMDb Box Sets 0.0.0.0: Active TheTVDB 10.0.0.0: Active

Jellyfin log:

[17:16:05] [ERR] Failed to load assembly /config/plugins/Playback Reporting_13.2403.4.0/Jellyfin.Plugin.PlaybackReporting.dll. This error occurs when a plugin references an incompatible version of one of the shared libraries. Disabling plugin
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Could not load file or assembly 'SQLitePCL.pretty, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at Emby.Server.Implementations.Plugins.PluginManager.LoadAssemblies()+MoveNext()
System.IO.FileNotFoundException: Could not load file or assembly 'SQLitePCL.pretty, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

File name: 'SQLitePCL.pretty, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
crobibero commented 5 months ago

I'm 80% we just need to add SQLitePCL.pretty.netstandard.dll to build.yaml

Won't have time to test until later

crobibero commented 5 months ago

Please try v13.2403.5.0

rigrig commented 5 months ago

It loads and adds an item to the dashboard, but the report itself is broken: image Log (I tried reloading, which gave the second error message):

[18:14:41] [ERR] Error processing request. URL GET /user_usage_stats/user_activity.
System.InvalidOperationException: The AuthorizationPolicy named: 'DefaultAuthorization' was not found.
[18:14:48] [ERR] Error processing request. URL GET /user_usage_stats/user_activity.
System.InvalidOperationException: The AuthorizationPolicy named: 'DefaultAuthorization' was not found.
   at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
   at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context)

Similar when opening through the Plugins page: image Log (reloaded twice):

[18:15:34] [ERR] Error processing request. URL GET /user_usage_stats/type_filter_list.
System.InvalidOperationException: The AuthorizationPolicy named: 'DefaultAuthorization' was not found.
   at Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable`1 authorizeData, IEnumerable`1 policies)
   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.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)
[18:15:42] [ERR] Error processing request. URL GET /user_usage_stats/type_filter_list.
System.InvalidOperationException: The AuthorizationPolicy named: 'DefaultAuthorization' was not found.
   at Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable`1 authorizeData, IEnumerable`1 policies)
   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)
[18:15:57] [ERR] Error processing request. URL GET /user_usage_stats/type_filter_list.
System.InvalidOperationException: The AuthorizationPolicy named: 'DefaultAuthorization' was not found.
   at Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable`1 authorizeData, IEnumerable`1 policies)
   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)
crobibero commented 5 months ago

Thank you for the report, I've update the affected plugins and have pushed new versions

rigrig commented 5 months ago

Thanks, it works now!

I guess that means #75 can be closed as well.