Series DateLastMediaAdded field not updated when new episodes are added #7723

Closed
opened 2026-02-07 05:21:34 +03:00 by OVERLORD · 2 comments
Owner

Originally created by @MangataL on GitHub (Nov 9, 2025).

Description of the bug

When new TV episodes are added to an existing series, the "Date Episode Added" sorting does not work as expected. The newly added episodes don't appear at the top of the list immediately after adding them to the library.After reviewing the source code, I found that it seems to be due to the DateLastMediaAdded not being updated after adding a new episode.

Reproduction steps

  1. Have an existing TV series in Jellyfin , assumed to be /video/tv/GNOSIA
  2. Add new episode files to the series folder, assumed to be /video/tv/GNOSIA/Season 1/GNOSIA S01E06
  3. Wait for Jellyfin to automatically scan and add them
  4. Go to the TV Shows library
  5. Sort by "Date Episode Added" in descending order
  6. Issue: The series with new episodes doesn't appear at the top

By checking the logs, I found logs similar to Emby.Server.Implementations.IO.LibraryMonitor: "GNOSIA" ("/video/bangumi/GNOSIA/Season 1") will be refreshed. Further examination of the code revealed that when a new episode is added to the database, it triggers the refresh of the directory of the previous episode. In the database, its type is MediaBrowser.Controller.Entities.TV.Season, and the SupportsDateLastMediaAdded property of this type is false. There is also no DateLastMediaAdded attribute value in the database. The page seems to sort by the date of addition according to the episode number, but when episodes are added and updated, only the update of the Season is triggered, not the update of the Series.

What is the current bug behavior?

The series with new episodes doesn't appear at the top

What is the expected correct behavior?

The series with new episodes appear at the top

Jellyfin Server version

10.11.0+

Specify commit id

No response

Specify unstable release number

No response

Specify version number

No response

Specify the build version

10.11.2

Environment

- OS: Synology DSM 
- Linux Kernel: Linux NAS 4.4.180+
- Virtualization: docker
- Clients: Browser
- Browser: Safari 26.01
- Jellyfin Data Storage: Local HDD
- Media Storage: Local HDD

Jellyfin logs

[2025-11-09 04:42:25.882 +00:00] [ERR] [48] MediaBrowser.Providers.Manager.ProviderManager: "TvdbMovieImageProvider" failed in GetImageInfos for type "Movie" at "/video/link/电影/新世纪福音战士 Air、真心为你(1997)/新世纪福音战士剧场版 Air 真心为你.mkv"
HTTP Response: 

{"status":"failure","message":"InvalidValueType: cannot make item path","data":null}


Tvdb.Sdk.MoviesException: Invalid movie id

Status: 400
Response: 
{"status":"failure","message":"InvalidValueType: cannot make item path","data":null}

   at Tvdb.Sdk.MoviesClient.GetMovieExtendedAsync(Double id, Nullable`1 meta, Nullable`1 short, CancellationToken cancellationToken)
   at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetMovieExtendedByIdAsync(Int32 tvdbId, CancellationToken cancellationToken)
   at Jellyfin.Plugin.Tvdb.Providers.TvdbMovieImageProvider.GetMovieArtworks(Int32 movieTvdbId, CancellationToken cancellationToken)
   at Jellyfin.Plugin.Tvdb.Providers.TvdbMovieImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, String preferredLanguage, Boolean includeAllLanguages, CancellationToken cancellationToken, Nullable`1 type)
[2025-11-09 04:43:22.514 +00:00] [INF] [92] IntroSkipper.Services.Entrypoint: Initiating automatic analysis task
[2025-11-09 04:43:22.566 +00:00] [INF] [92] IntroSkipper.Manager.QueueManager: Running enqueue of items in library "动漫"
[2025-11-09 04:43:22.671 +00:00] [ERR] [92] IntroSkipper.Services.Entrypoint: Error in RunAnalysisAsync
IntroSkipper.Data.FingerprintException: No libraries selected for analysis. Please visit the plugin settings to configure.
   at IntroSkipper.ScheduledTasks.BaseItemAnalyzerTask.AnalyzeItems(IProgress`1 progress, CancellationToken cancellationToken, IReadOnlyCollection`1 seasonsToAnalyze)
   at IntroSkipper.Services.Entrypoint.PerformAnalysisAsync()
   at IntroSkipper.Services.Entrypoint.RunAnalysisAsync()
[2025-11-09 05:20:14.711 +00:00] [INF] [66] Emby.Server.Implementations.IO.LibraryMonitor: "古诺希亚" ("/video/bangumi/古诺希亚/Season 1") will be refreshed.
[2025-11-09 05:20:15.072 +00:00] [INF] [14] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/video/bangumi/古诺希亚/Season 1/古诺希亚 S01E05.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2025-11-09 05:20:15.652 +00:00] [INF] [90] Jellyfin.Server.Implementations.Trickplay.TrickplayManager: Creating trickplay files at 320 width, for "/video/bangumi/古诺希亚/Season 1/古诺希亚 S01E05.mkv" [ID: a12c2eed-290a-36cc-db8a-2e8ac4fc83d3]
[2025-11-09 05:20:15.652 +00:00] [INF] [90] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Trickplay generation: "/usr/lib/jellyfin-ffmpeg/ffmpeg -loglevel error -init_hw_device vaapi=va:,vendor_id=0x8086,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:\"/video/bangumi/古诺希亚/Season 1/古诺希亚 S01E05.mkv\" -noautoscale -an -sn -vf \"fps=0.10000000149011612,setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=w=320:h=180:format=nv12:out_range=pc:mode=hq:extra_hw_frames=24,hwmap=derive_device=qsv,format=qsv\" -threads 1 -c:v mjpeg_qsv -global_quality:v 91 -fps_mode passthrough -f image2 \"/tmp/jellyfin/6540a456a9b74d47b04e4cd2039636a3/%08d.jpg\""
[2025-11-09 05:21:03.150 +00:00] [INF] [66] Jellyfin.Server.Implementations.Trickplay.TrickplayManager: Finished creation of trickplay files for "/video/bangumi/古诺希亚/Season 1/古诺希亚 S01E05.mkv"
[2025-11-09 05:21:16.351 +00:00] [INF] [104] IntroSkipper.Services.Entrypoint: Initiating automatic analysis task
[2025-11-09 05:21:16.401 +00:00] [INF] [104] IntroSkipper.Manager.QueueManager: Running enqueue of items in library "动漫"
[2025-11-09 05:21:16.507 +00:00] [INF] [104] IntroSkipper.Services.Entrypoint: [Mode: Introduction] Analyzing 5 files from "古诺希亚" season 1
[2025-11-09 05:21:17.543 +00:00] [INF] [104] IntroSkipper.Services.Entrypoint: [Mode: Credits] Analyzing 5 files from "古诺希亚" season 1
[2025-11-09 05:48:54.020 +00:00] [INF] [72] Emby.Server.Implementations.ScheduledTasks.TaskManager: "媒体分段扫描" Completed after 0 minute(s) and 1 seconds
[2025-11-09 05:49:07.488 +00:00] [INF] [72] Emby.Server.Implementations.IO.LibraryMonitor: Stopping directory watching for path "/video/bangumi"
[2025-11-09 05:49:07.496 +00:00] [INF] [72] Emby.Server.Implementations.Library.LibraryManager: Validating media library
[2025-11-09 05:49:07.499 +00:00] [WRN] [72] MediaBrowser.Controller.Entities.BaseItem: Library folder "/config/data/playlists" is inaccessible or empty, skipping
[2025-11-09 05:49:07.605 +00:00] [INF] [79] Jellyfin.Drawing.ImageProcessor: Creating image collage and saving to "/tmp/jellyfin/4f03300d2dd94a9cb68916ff789e8afa.png"
[2025-11-09 05:49:08.061 +00:00] [INF] [79] Jellyfin.Drawing.ImageProcessor: Completed creation of image collage and saved to "/tmp/jellyfin/4f03300d2dd94a9cb68916ff789e8afa.png"
[2025-11-09 05:49:08.145 +00:00] [WRN] [79] MediaBrowser.Controller.Entities.BaseItem: Library folder "/config/data/playlists" is inaccessible or empty, skipping

FFmpeg logs


Client / Browser logs

No response

Relevant screenshots or videos

No response

Additional information

No response

Originally created by @MangataL on GitHub (Nov 9, 2025). ### Description of the bug When new TV episodes are added to an existing series, the "Date Episode Added" sorting does not work as expected. The newly added episodes don't appear at the top of the list immediately after adding them to the library.After reviewing the source code, I found that it seems to be due to the DateLastMediaAdded not being updated after adding a new episode. ### Reproduction steps 1. Have an existing TV series in Jellyfin , assumed to be `/video/tv/GNOSIA` 2. Add new episode files to the series folder, assumed to be `/video/tv/GNOSIA/Season 1/GNOSIA S01E06` 3. Wait for Jellyfin to automatically scan and add them 4. Go to the TV Shows library 5. Sort by "Date Episode Added" in descending order 6. **Issue**: The series with new episodes doesn't appear at the top By checking the logs, I found logs similar to `Emby.Server.Implementations.IO.LibraryMonitor: "GNOSIA" ("/video/bangumi/GNOSIA/Season 1") will be refreshed.` Further examination of the code revealed that when a new episode is added to the database, it triggers the refresh of the directory of the previous episode. In the database, its type is `MediaBrowser.Controller.Entities.TV.Season`, and the SupportsDateLastMediaAdded property of this type is false. There is also no DateLastMediaAdded attribute value in the database. The page seems to sort by the date of addition according to the episode number, but when episodes are added and updated, only the update of the Season is triggered, not the update of the Series. ### What is the current _bug_ behavior? The series with new episodes doesn't appear at the top ### What is the expected _correct_ behavior? The series with new episodes appear at the top ### Jellyfin Server version 10.11.0+ ### Specify commit id _No response_ ### Specify unstable release number _No response_ ### Specify version number _No response_ ### Specify the build version 10.11.2 ### Environment ```markdown - OS: Synology DSM - Linux Kernel: Linux NAS 4.4.180+ - Virtualization: docker - Clients: Browser - Browser: Safari 26.01 - Jellyfin Data Storage: Local HDD - Media Storage: Local HDD ``` ### Jellyfin logs ```shell [2025-11-09 04:42:25.882 +00:00] [ERR] [48] MediaBrowser.Providers.Manager.ProviderManager: "TvdbMovieImageProvider" failed in GetImageInfos for type "Movie" at "/video/link/电影/新世纪福音战士 Air、真心为你(1997)/新世纪福音战士剧场版 Air 真心为你.mkv" HTTP Response: {"status":"failure","message":"InvalidValueType: cannot make item path","data":null} Tvdb.Sdk.MoviesException: Invalid movie id Status: 400 Response: {"status":"failure","message":"InvalidValueType: cannot make item path","data":null} at Tvdb.Sdk.MoviesClient.GetMovieExtendedAsync(Double id, Nullable`1 meta, Nullable`1 short, CancellationToken cancellationToken) at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetMovieExtendedByIdAsync(Int32 tvdbId, CancellationToken cancellationToken) at Jellyfin.Plugin.Tvdb.Providers.TvdbMovieImageProvider.GetMovieArtworks(Int32 movieTvdbId, CancellationToken cancellationToken) at Jellyfin.Plugin.Tvdb.Providers.TvdbMovieImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, String preferredLanguage, Boolean includeAllLanguages, CancellationToken cancellationToken, Nullable`1 type) [2025-11-09 04:43:22.514 +00:00] [INF] [92] IntroSkipper.Services.Entrypoint: Initiating automatic analysis task [2025-11-09 04:43:22.566 +00:00] [INF] [92] IntroSkipper.Manager.QueueManager: Running enqueue of items in library "动漫" [2025-11-09 04:43:22.671 +00:00] [ERR] [92] IntroSkipper.Services.Entrypoint: Error in RunAnalysisAsync IntroSkipper.Data.FingerprintException: No libraries selected for analysis. Please visit the plugin settings to configure. at IntroSkipper.ScheduledTasks.BaseItemAnalyzerTask.AnalyzeItems(IProgress`1 progress, CancellationToken cancellationToken, IReadOnlyCollection`1 seasonsToAnalyze) at IntroSkipper.Services.Entrypoint.PerformAnalysisAsync() at IntroSkipper.Services.Entrypoint.RunAnalysisAsync() [2025-11-09 05:20:14.711 +00:00] [INF] [66] Emby.Server.Implementations.IO.LibraryMonitor: "古诺希亚" ("/video/bangumi/古诺希亚/Season 1") will be refreshed. [2025-11-09 05:20:15.072 +00:00] [INF] [14] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/video/bangumi/古诺希亚/Season 1/古诺希亚 S01E05.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format" [2025-11-09 05:20:15.652 +00:00] [INF] [90] Jellyfin.Server.Implementations.Trickplay.TrickplayManager: Creating trickplay files at 320 width, for "/video/bangumi/古诺希亚/Season 1/古诺希亚 S01E05.mkv" [ID: a12c2eed-290a-36cc-db8a-2e8ac4fc83d3] [2025-11-09 05:20:15.652 +00:00] [INF] [90] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Trickplay generation: "/usr/lib/jellyfin-ffmpeg/ffmpeg -loglevel error -init_hw_device vaapi=va:,vendor_id=0x8086,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:\"/video/bangumi/古诺希亚/Season 1/古诺希亚 S01E05.mkv\" -noautoscale -an -sn -vf \"fps=0.10000000149011612,setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=w=320:h=180:format=nv12:out_range=pc:mode=hq:extra_hw_frames=24,hwmap=derive_device=qsv,format=qsv\" -threads 1 -c:v mjpeg_qsv -global_quality:v 91 -fps_mode passthrough -f image2 \"/tmp/jellyfin/6540a456a9b74d47b04e4cd2039636a3/%08d.jpg\"" [2025-11-09 05:21:03.150 +00:00] [INF] [66] Jellyfin.Server.Implementations.Trickplay.TrickplayManager: Finished creation of trickplay files for "/video/bangumi/古诺希亚/Season 1/古诺希亚 S01E05.mkv" [2025-11-09 05:21:16.351 +00:00] [INF] [104] IntroSkipper.Services.Entrypoint: Initiating automatic analysis task [2025-11-09 05:21:16.401 +00:00] [INF] [104] IntroSkipper.Manager.QueueManager: Running enqueue of items in library "动漫" [2025-11-09 05:21:16.507 +00:00] [INF] [104] IntroSkipper.Services.Entrypoint: [Mode: Introduction] Analyzing 5 files from "古诺希亚" season 1 [2025-11-09 05:21:17.543 +00:00] [INF] [104] IntroSkipper.Services.Entrypoint: [Mode: Credits] Analyzing 5 files from "古诺希亚" season 1 [2025-11-09 05:48:54.020 +00:00] [INF] [72] Emby.Server.Implementations.ScheduledTasks.TaskManager: "媒体分段扫描" Completed after 0 minute(s) and 1 seconds [2025-11-09 05:49:07.488 +00:00] [INF] [72] Emby.Server.Implementations.IO.LibraryMonitor: Stopping directory watching for path "/video/bangumi" [2025-11-09 05:49:07.496 +00:00] [INF] [72] Emby.Server.Implementations.Library.LibraryManager: Validating media library [2025-11-09 05:49:07.499 +00:00] [WRN] [72] MediaBrowser.Controller.Entities.BaseItem: Library folder "/config/data/playlists" is inaccessible or empty, skipping [2025-11-09 05:49:07.605 +00:00] [INF] [79] Jellyfin.Drawing.ImageProcessor: Creating image collage and saving to "/tmp/jellyfin/4f03300d2dd94a9cb68916ff789e8afa.png" [2025-11-09 05:49:08.061 +00:00] [INF] [79] Jellyfin.Drawing.ImageProcessor: Completed creation of image collage and saved to "/tmp/jellyfin/4f03300d2dd94a9cb68916ff789e8afa.png" [2025-11-09 05:49:08.145 +00:00] [WRN] [79] MediaBrowser.Controller.Entities.BaseItem: Library folder "/config/data/playlists" is inaccessible or empty, skipping ``` ### FFmpeg logs ```shell ``` ### Client / Browser logs _No response_ ### Relevant screenshots or videos _No response_ ### Additional information _No response_
OVERLORD added the bug label 2026-02-07 05:21:34 +03:00
Author
Owner

@moontwister commented on GitHub (Nov 10, 2025):

I can confirm this issue on multiple setups:

Jellyfin Server (Docker & native) running on both Linux (TrueNAS / Debian) and Windows
Clients affected:
    Jellyfin Web Client (latest version, Chrome & Firefox)
    Jellyfin webOS App (LG TV)

Clients not affected:
    Kodi (Jellyfin add-on)
    Infuse (Jellyfin integration)

When sorting by “Date Episode Added”, adding a new episode does not reorder the series in the Web or webOS clients.

The same server and library show correct “latest episode” ordering in Kodi and Infuse, which suggests that the server is correctly storing the DateAdded metadata, but the Web UI and webOS clients are not updating or using the latest DateLastMediaAdded field properly.

Also, running “Search for Missing Metadata” temporarily fixes the order, but that shouldn’t be required for normal updates.

@moontwister commented on GitHub (Nov 10, 2025): I can confirm this issue on multiple setups: Jellyfin Server (Docker & native) running on both Linux (TrueNAS / Debian) and Windows Clients affected: Jellyfin Web Client (latest version, Chrome & Firefox) Jellyfin webOS App (LG TV) Clients not affected: Kodi (Jellyfin add-on) Infuse (Jellyfin integration) When sorting by “Date Episode Added”, adding a new episode does not reorder the series in the Web or webOS clients. The same server and library show correct “latest episode” ordering in Kodi and Infuse, which suggests that the server is correctly storing the DateAdded metadata, but the Web UI and webOS clients are not updating or using the latest DateLastMediaAdded field properly. Also, running “Search for Missing Metadata” temporarily fixes the order, but that shouldn’t be required for normal updates.
Author
Owner

@theguymadmax commented on GitHub (Nov 17, 2025):

Fixed by: #15472

@theguymadmax commented on GitHub (Nov 17, 2025): Fixed by: #15472
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#7723