Jellyfin Forum
Missing collections - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+---- Forum: Media Scanning & Identification (https://forum.jellyfin.org/f-media-scanning-identification)
+---- Thread: Missing collections (/t-missing-collections)

Pages: 1 2 3


Missing collections - Andyroo - 2024-12-07

For some reason my boot disk decided not to boot anymore (Debian 12 on Intel using an mSATA drive) - no idea as it has been happy for months and all the data was still valid but it just refused to boot at all (not even the grub selection screen showed).

So after a reset of the BIOS (to make sure) and reinstall of Debian everything on the PC was back up and running so I decided to install Jellyfin under Docker rather than on bare metal as there are a couple of other things I want this box to do and they are Docker containers.

The container is set to run as a user (Jellyfin) with no home folder and this use owns the media files.

The compose file is:
Code:
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    user: 1001:1001
    network_mode: 'host'
    volumes:
      - /srv/docker/jellyfin/data/config:/config
      - /srv/docker/jellyfin/data/cache:/cache
      - type: bind
        source: /mnt/middle/Media/
        target: /media
        read_only: true
      - type: bind
        source: /mnt/lower/Media/
        target: /media2
        read_only: true
    restart: 'unless-stopped'
    # Optional - alternative address used for autodiscovery
    environment:
      - JELLYFIN_PublishedServerUrl=http://shuttle.local
    # Optional - may be necessary for docker healthcheck to pass if running in host network mode
    extra_hosts:
      - 'host.docker.internal:host-gateway'

Set up went fine and it found the DVD directories with no issues and seems to have indexed the movies fine except:

1) Some movies do not have the correct picture - this seems to be random even though the director (and file name) has a tmdb identifier in the form of [tmdbid-xyz] - I had changed some of them but I am 100% convinced others are now wrong
2) The odd film is duplicated despite them being in different directories with different names (and tmdbid's) - Alien vs Predator and AVP Requiem come to mind
3) The majority of collections have not been created. Such movies as James Bond, Harry Potter, Sherlock Holmes etc are just missing.

I do have a backup of the old system but loathe to restore that as the index files etc are in the wrong location on-going but will do if I cannot find a quick fix...


RE: Missing collections - Andyroo - 2024-12-07

This could be tied into the outstanding bug on tmdb and the json data https://www.themoviedb.org/talk/675427102a0e9c79f19b8d0e

Will hang on for a day or so before restoring to the old data structure :-(


RE: Missing collections - TheDreadPirate - 2024-12-07

TMDB found the issue and pushed a fix. Once their caches start to refresh "about 8 hours from now" the issue should resolve itself. Which is now 5.5 hours as of this post.


RE: Missing collections - Andyroo - 2025-01-03

Well bits of it are working it seems.

I now have pictures and collections coming through though the film pictures are different from previous ones.

Still no cast and crew pictures and I'm seeing an error in the logs when I try to scan the libraries:

Code:
[2025-01-03 16:21:28.019 +00:00] [ERR] [25] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/Items/046e6d71bc64f4bd57b7dfb929341018/Images/Primary".
System.Net.Http.HttpRequestException: Response status code does not indicate success: 400 (Bad Request).
  at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
  at MediaBrowser.Providers.Manager.ProviderManager.SaveImage(BaseItem item, String url, ImageType type, Nullable`1 imageIndex, CancellationToken cancellationToken)
  at Emby.Server.Implementations.Library.LibraryManager.ConvertImageToLocal(BaseItem item, ItemImageInfo image, Int32 imageIndex, Boolean removeOnFailure)
  at Jellyfin.Api.Controllers.ImageController.GetImageInternal(Guid itemId, ImageType imageType, Nullable`1 imageIndex, String tag, Nullable`1 format, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 percentPlayed, Nullable`1 unplayedCount, Nullable`1 width, Nullable`1 height, Nullable`1 quality, Nullable`1 fillWidth, Nullable`1 fillHeight, Nullable`1 blur, String backgroundColor, String foregroundLayer, BaseItem item, ItemImageInfo imageInfo)
  at Jellyfin.Api.Controllers.ImageController.GetItemImage(Guid itemId, ImageType imageType, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 width, Nullable`1 height, Nullable`1 quality, Nullable`1 fillWidth, Nullable`1 fillHeight, String tag, Nullable`1 format, Nullable`1 percentPlayed, Nullable`1 unplayedCount, Nullable`1 blur, String backgroundColor, String foregroundLayer, Nullable`1 imageIndex)
  at lambda_method1091(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>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
  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>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
  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)


Not sure if this is due to the power loss we have had (its a bit cold here and the UK cannot normally handle weather) or still a bug floating around.

I've attached the log to this post - happy to report this elsewhere if folk can point me in the right direction...


RE: Missing collections - TheDreadPirate - 2025-01-03

That usually indicates that it expected an image from the Jellyfin server and didn't get one. You'd need to either rescan and select "find missing metadata" or "replace all metadata" and check "replace all images".


RE: Missing collections - Andyroo - 2025-01-09

Finally got time to try these (not well at the mo) but unfortunately neither of these have fixed the issue.

Could it be a directory rights issue or something to do with Docker?


RE: Missing collections - TheDreadPirate - 2025-01-09

Possibly. The log you shared didn't really give me an idea of who you have things named and organized. Can you provide examples for folder and file names? Preferably the ENTIRE path.


RE: Missing collections - Andyroo - 2025-01-16

Mind like treacle at the mo so I think this makes sense:

Docker is set up so that the user, config and cache are:


user: 1001:1001

    volumes:
      - /srv/docker/jellyfin/data/configConfused-faceconfig
      - /srv/docker/jellyfin/data/cacheConfused-facecache
      - type: bind

In the host system user Jellyfin is 1001:
$id jellyfin
uid=1001(jellyfin) gid=1001(jellyfin) groups=1001(jellyfin)

Ownership of the data/config and data/cache look correct:

$ ls -l /srv/docker/jellyfin/data/
drwxr-xr-x 7 jellyfin jellyfin 4096 2025/01/15 Wed 16:31:50 cache/
drwxr-xr-x 8 jellyfin jellyfin 4096 2024/12/09 Mon 19:38:15 config/
$ ls -l /srv/docker/jellyfin/data/cache/
drwxr-xr-x 3 jellyfin jellyfin  4096 2024/12/09 Mon 20:07:03 audiodb-artist/
drwxr-xr-x 3 jellyfin jellyfin  4096 2024/12/09 Mon 20:24:11 images/
drwxr-xr-x 2 jellyfin jellyfin  4096 2024/12/09 Mon 20:21:35 imagesbyname/
drwxr-xr-x 2 jellyfin jellyfin 40960 2024/12/09 Mon 20:21:23 omdb/
drwxr-xr-x 2 jellyfin jellyfin  4096 2025/01/15 Wed 16:31:50 transcodes/
$ ls -l /srv/docker/jellyfin/data/config/
drwxr-xr-x 2 jellyfin jellyfin 4096 2024/12/09 Mon 19:56:11 config/
drwxr-xr-x 5 jellyfin jellyfin 4096 2025/01/16 Thu 16:18:40 data/
drwxr-xr-x 2 jellyfin jellyfin 4096 2025/01/16 Thu 00:00:00 log/
drwxr-xr-x 6 jellyfin jellyfin 4096 2024/12/09 Mon 21:28:47 metadata/
drwxr-xr-x 5 jellyfin jellyfin 4096 2024/12/09 Mon 19:58:56 plugins/
drwxr-xr-x 3 jellyfin jellyfin 4096 2024/12/09 Mon 19:38:15 root

I remember creating the configuration and cache directories but anything below this was created automatically.

The Movies collection in Jellyfin does not have the 'Save artwork into Media Folders' ticked - I though this forced the data into the config directories as per the non-docker install I used to have...

Selecting a person at random I get /config/metadata/People/A/Arnold Schwarzenegger as the path:
$ ls -l /srv/docker/jellyfin/data/config/metadata/
drwxr-xr-x 257 jellyfin jellyfin  4096 2024/12/09 Mon 20:13:48 library/
drwxr-xr-x  17 jellyfin jellyfin  4096 2025/01/09 Thu 01:33:28 People/
drwxr-xr-x 300 jellyfin jellyfin 16384 2025/01/09 Thu 04:30:55 Studio/
drwxr-xr-x  3 jellyfin jellyfin  4096 2024/12/09 Mon 20:24:11 views/

$ ls -l /srv/docker/jellyfin/data/config/metadata/People
drwxr-xr-x  5 jellyfin jellyfin 4096 2025/01/09 Thu 01:33:07 A/
drwxr-xr-x  4 jellyfin jellyfin 4096 2025/01/09 Thu 01:31:58 B/
drwxr-xr-x  7 jellyfin jellyfin 4096 2025/01/09 Thu 01:33:43 C/
drwxr-xr-x  7 jellyfin jellyfin 4096 2025/01/09 Thu 01:33:32 D/
drwxr-xr-x  4 jellyfin jellyfin 4096 2025/01/09 Thu 01:32:07 E/
drwxr-xr-x  5 jellyfin jellyfin 4096 2025/01/09 Thu 01:33:51 G/
drwxr-xr-x  5 jellyfin jellyfin 4096 2025/01/09 Thu 01:32:23 H/
drwxr-xr-x  4 jellyfin jellyfin 4096 2025/01/09 Thu 01:32:13 I/
drwxr-xr-x 11 jellyfin jellyfin 4096 2025/01/09 Thu 01:33:48 J/
drwxr-xr-x  7 jellyfin jellyfin 4096 2025/01/09 Thu 01:33:34 L/
drwxr-xr-x  7 jellyfin jellyfin 4096 2025/01/09 Thu 01:33:42 M/
drwxr-xr-x  3 jellyfin jellyfin 4096 2025/01/09 Thu 01:30:29 N/
drwxr-xr-x  5 jellyfin jellyfin 4096 2025/01/09 Thu 01:33:43 R/
drwxr-xr-x  4 jellyfin jellyfin 4096 2025/01/09 Thu 01:33:41 T/
drwxr-xr-x  3 jellyfin jellyfin 4096 2025/01/09 Thu 01:32:36 V/

$ ls -l /srv/docker/jellyfin/data/config/metadata/People/A
drwxr-xr-x 2 jellyfin jellyfin 4096 2025/01/09 Thu 01:33:07 Aaron Stanford/
drwxr-xr-x 2 jellyfin jellyfin 4096 2025/01/09 Thu 01:30:44 Alice Eve/
drwxr-xr-x 2 jellyfin jellyfin 4096 2025/01/09 Thu 01:32:19 Aubrey Morris/


It looks like it is not creating all directories for 'People' - there is over 80G of free space on the drive so its not as if I have run out of disk space.
Aaron Stanford does have a picture for his entry in X2.

Creating the directory for Arnold Schwarzenegger (with the owner of jellyfin:jellyfin) and refreshing the metadata with 'scan for new / updated data' on his image placeholder did not help - replacing the metadata with the option 'Replace image' ticked worked.

Selecting the next artist (also without a People directory) and manually searching with the replace ticked works WITHOUT creating a directory first.

Doing the same at the film level (i.e. The 6th Day in this case) does not create the artist picture for these missing entries ONLY doing it at the artist level seems to work.


RE: Missing collections - Andyroo - 2025-01-24

Just wondering if anyone had any thoughts or recommendations where I can post this for the devs to have a look at?


RE: Missing collections - TheDreadPirate - 2025-01-24

Can you clarify something. So your collections used to have images, but now they don't after you've reinstalled? But now in docker.

Do you have the TMDB boxset plugin installed? IIRC, having that plugin is important for more consistent collection image retrieval.