2025-11-07, 10:29 PM
(This post was last modified: Yesterday, 08:00 AM by quixotic120. Edited 3 times in total.)
I have scanned in a TV show and it is correctly identified. However, when viewed through the WebUI or any client app I can only see "next up" and the display of "seasons" never appears like it does for other shows.
Additionally my primary viewing platform is a coreelec box via kodi for jellyfin and this specific show causes library scans to hang indefinitely. I understand this is an issue beyond the scope of this forum but I think this is the root cause of the issue.
Folder structure for the show is as follows
/data/tv/show
/show/season 1
/season 1/Show Name - S01E01.mkv
etc.
And as a result the metadata appears correct from the automated library scan using thetvdb as a provider - episode names and descriptions are correct, images are correct, etc. I can only see the next episode up through the web view but I can browse the rest of the episodes in the season to see they are also correct when viewing the detail here.
I can view the rest of the seasons in metadata manager to see the series scanned in correctly for the most part - some seasons stay stuck on "loading". I assume this is part of the issue. When opening the offending seasons in the metadata manager I get this in the log. it appears to trigger consistently with opening offending seasons (either expanding episodes or clicking on the season category folder) but I am not sure if related:
I have tried refreshing the metadata and replacing all and that did not help. This is also on a relatively fresh install of jellyfin - 10.11 had me switch to a fresh DB and rebuild from scratch for other reasons. running within docker on unraid, if that matters, using the linuxserver.io image.
It is an older show with content that is hard to find; not available on streaming networks and as a result episodes are a mix of codecs and containers (avi and mkv). It is also very long running with many episodes - 30+ seasons and hundreds of episodes. I mention this just in case but don’t see why either would be a problem as I have archived other shows with both situations that do not have this issue
Edit: i have also tried just fully deleting the tv library and recreating it. It is not complete because the initial scan is quite slow, my library is fairly large, but it has passed this show and the problem remains. Additionally there is now an issue of duplicate tv libraries even though i removed the tv library: there is a phantom “shows2” library, however i am wondering if this will disappear upon a library clean after the scan is finally over several hours from now?
Additionally my primary viewing platform is a coreelec box via kodi for jellyfin and this specific show causes library scans to hang indefinitely. I understand this is an issue beyond the scope of this forum but I think this is the root cause of the issue.
Folder structure for the show is as follows
/data/tv/show
/show/season 1
/season 1/Show Name - S01E01.mkv
etc.
And as a result the metadata appears correct from the automated library scan using thetvdb as a provider - episode names and descriptions are correct, images are correct, etc. I can only see the next episode up through the web view but I can browse the rest of the episodes in the season to see they are also correct when viewing the detail here.
I can view the rest of the seasons in metadata manager to see the series scanned in correctly for the most part - some seasons stay stuck on "loading". I assume this is part of the issue. When opening the offending seasons in the metadata manager I get this in the log. it appears to trigger consistently with opening offending seasons (either expanding episodes or clicking on the season category folder) but I am not sure if related:
Code:
[2025-11-07 16:42:57.021 -05:00] [ERR] [81] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/Users/504233f6a9424deb8c12e4d7851a81b8/Items".
System.NullReferenceException: Object reference not set to an instance of an object.
at MediaBrowser.Controller.Entities.TV.Season.GetItemsInternal(InternalItemsQuery query)
at Jellyfin.Api.Controllers.ItemsController.GetItems(Nullable`1 userId, String maxOfficialRating, Nullable`1 hasThemeSong, Nullable`1 hasThemeVideo, Nullable`1 hasSubtitles, Nullable`1 hasSpecialFeature, Nullable`1 hasTrailer, Nullable`1 adjacentTo, Nullable`1 indexNumber, Nullable`1 parentIndexNumber, Nullable`1 hasParentalRating, Nullable`1 isHd, Nullable`1 is4K, LocationType[] locationTypes, LocationType[] excludeLocationTypes, Nullable`1 isMissing, Nullable`1 isUnaired, Nullable`1 minCommunityRating, Nullable`1 minCriticRating, Nullable`1 minPremiereDate, Nullable`1 minDateLastSaved, Nullable`1 minDateLastSavedForUser, Nullable`1 maxPremiereDate, Nullable`1 hasOverview, Nullable`1 hasImdbId, Nullable`1 hasTmdbId, Nullable`1 hasTvdbId, Nullable`1 isMovie, Nullable`1 isSeries, Nullable`1 isNews, Nullable`1 isKids, Nullable`1 isSports, Guid[] excludeItemIds, Nullable`1 startIndex, Nullable`1 limit, Nullable`1 recursive, String searchTerm, SortOrder[] sortOrder, Nullable`1 parentId, ItemFields[] fields, BaseItemKind[] excludeItemTypes, BaseItemKind[] includeItemTypes, ItemFilter[] filters, Nullable`1 isFavorite, MediaType[] mediaTypes, ImageType[] imageTypes, ItemSortBy[] sortBy, Nullable`1 isPlayed, String[] genres, String[] officialRatings, String[] tags, Int32[] years, Nullable`1 enableUserData, Nullable`1 imageTypeLimit, ImageType[] enableImageTypes, String person, Guid[] personIds, String[] personTypes, String[] studios, String[] artists, Guid[] excludeArtistIds, Guid[] artistIds, Guid[] albumArtistIds, Guid[] contributingArtistIds, String[] albums, Guid[] albumIds, Guid[] ids, VideoType[] videoTypes, String minOfficialRating, Nullable`1 isLocked, Nullable`1 isPlaceHolder, Nullable`1 hasOfficialRating, Nullable`1 collapseBoxSetItems, Nullable`1 minWidth, Nullable`1 minHeight, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 is3D, SeriesStatus[] seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, Guid[] studioIds, Guid[] genreIds, Boolean enableTotalRecordCount, Nullable`1 enableImages)
at Jellyfin.Api.Controllers.ItemsController.GetItemsByUserIdLegacy(Guid userId, String maxOfficialRating, Nullable`1 hasThemeSong, Nullable`1 hasThemeVideo, Nullable`1 hasSubtitles, Nullable`1 hasSpecialFeature, Nullable`1 hasTrailer, Nullable`1 adjacentTo, Nullable`1 parentIndexNumber, Nullable`1 hasParentalRating, Nullable`1 isHd, Nullable`1 is4K, LocationType[] locationTypes, LocationType[] excludeLocationTypes, Nullable`1 isMissing, Nullable`1 isUnaired, Nullable`1 minCommunityRating, Nullable`1 minCriticRating, Nullable`1 minPremiereDate, Nullable`1 minDateLastSaved, Nullable`1 minDateLastSavedForUser, Nullable`1 maxPremiereDate, Nullable`1 hasOverview, Nullable`1 hasImdbId, Nullable`1 hasTmdbId, Nullable`1 hasTvdbId, Nullable`1 isMovie, Nullable`1 isSeries, Nullable`1 isNews, Nullable`1 isKids, Nullable`1 isSports, Guid[] excludeItemIds, Nullable`1 startIndex, Nullable`1 limit, Nullable`1 recursive, String searchTerm, SortOrder[] sortOrder, Nullable`1 parentId, ItemFields[] fields, BaseItemKind[] excludeItemTypes, BaseItemKind[] includeItemTypes, ItemFilter[] filters, Nullable`1 isFavorite, MediaType[] mediaTypes, ImageType[] imageTypes, ItemSortBy[] sortBy, Nullable`1 isPlayed, String[] genres, String[] officialRatings, String[] tags, Int32[] years, Nullable`1 enableUserData, Nullable`1 imageTypeLimit, ImageType[] enableImageTypes, String person, Guid[] personIds, String[] personTypes, String[] studios, String[] artists, Guid[] excludeArtistIds, Guid[] artistIds, Guid[] albumArtistIds, Guid[] contributingArtistIds, String[] albums, Guid[] albumIds, Guid[] ids, VideoType[] videoTypes, String minOfficialRating, Nullable`1 isLocked, Nullable`1 isPlaceHolder, Nullable`1 hasOfficialRating, Nullable`1 collapseBoxSetItems, Nullable`1 minWidth, Nullable`1 minHeight, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 is3D, SeriesStatus[] seriesStatus, String nameStartsWithOrGreater, String nameStartsWith, String nameLessThan, Guid[] studioIds, Guid[] genreIds, Boolean enableTotalRecordCount, Nullable`1 enableImages)
at lambda_method5160(Closure, Object, Object[])
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
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)I have tried refreshing the metadata and replacing all and that did not help. This is also on a relatively fresh install of jellyfin - 10.11 had me switch to a fresh DB and rebuild from scratch for other reasons. running within docker on unraid, if that matters, using the linuxserver.io image.
It is an older show with content that is hard to find; not available on streaming networks and as a result episodes are a mix of codecs and containers (avi and mkv). It is also very long running with many episodes - 30+ seasons and hundreds of episodes. I mention this just in case but don’t see why either would be a problem as I have archived other shows with both situations that do not have this issue
Edit: i have also tried just fully deleting the tv library and recreating it. It is not complete because the initial scan is quite slow, my library is fairly large, but it has passed this show and the problem remains. Additionally there is now an issue of duplicate tv libraries even though i removed the tv library: there is a phantom “shows2” library, however i am wondering if this will disappear upon a library clean after the scan is finally over several hours from now?

