Old media segments from the Chapter Segments Provider plugin don't get deleted #7015

Closed
opened 2026-02-07 04:24:27 +03:00 by OVERLORD · 2 comments
Owner

Originally created by @ioqy on GitHub (May 16, 2025).

Description of the bug

I had some chapters incorrectly identified as commercials. After changing the settings of the "Chapter Segments Provider" plugin to not identify the chapters I ran the "Media Segment Scan" task and refreshed the metadata of the movie with the "Replace all metadata" mode, but the commercial segment was still there. Only after deleting all records in the "MediaSegments" table and running the Media Segment Scan again where the commercial segments gone.

Reproduction steps

  1. Have the Chapter Segments Provider plugin detect a chapter as a commercial
  2. Change the Chapter Segments Provider settings so that the chapter will not be identified as a commercial
  3. Run the Media Segment Scan task

What is the current bug behavior?

The chapter is still identified as a commercial

What is the expected correct behavior?

The chapter to not be identified as a commercial

Jellyfin Server version

10.10.0+

Specify commit id

No response

Specify unstable release number

No response

Specify version number

No response

Specify the build version

10.10.7

Environment

- OS: Ubuntu 24.04.2 LTS
- Linux Kernel:
- Virtualization: Docker
- Clients: Browser, Infuse on Apple TV, Infuse on iOS
- Browser: Safari on iOS
- FFmpeg Version:
- Playback Method: Direct Play
- Hardware Acceleration: none
- GPU Model:
- Plugins: Chapter Segments Provider
- Reverse Proxy:
- Base URL:
- Networking:
- Storage:

Jellyfin logs

[07:41:07] [ERR] [29] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file1.mkv
System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('25702350000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks')
Actual value was 25702350000.
   at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName)
   at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken)
[07:41:07] [ERR] [29] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file2.mkv
System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('28154380000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks')
Actual value was 28154380000.
   at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName)
   at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken)
[07:41:08] [ERR] [29] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file3.mkv
System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('31982790000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks')
Actual value was 31982790000.
   at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName)
   at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken)
[07:41:08] [ERR] [29] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file4.mkv
System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('32546270000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks')
Actual value was 32546270000.
   at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName)
   at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken)
[07:56:44] [ERR] [3] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file1.mkv
System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('25702350000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks')
Actual value was 25702350000.
   at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName)
   at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken)
[07:56:44] [ERR] [3] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file2.mkv
System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('28154380000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks')
Actual value was 28154380000.
   at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName)
   at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken)
[07:56:44] [ERR] [3] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file3.mkv
System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('31982790000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks')
Actual value was 31982790000.
   at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName)
   at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken)
[07:56:44] [ERR] [3] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file4.mkv
System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('32546270000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks')
Actual value was 32546270000.
   at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName)
   at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId)
   at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken)

FFmpeg logs


Client / Browser logs

No response

Relevant screenshots or videos

No response

Additional information

No response

Originally created by @ioqy on GitHub (May 16, 2025). ### Description of the bug I had some chapters incorrectly identified as commercials. After changing the settings of the "Chapter Segments Provider" plugin to not identify the chapters I ran the "Media Segment Scan" task and refreshed the metadata of the movie with the "Replace all metadata" mode, but the commercial segment was still there. Only after deleting all records in the "MediaSegments" table and running the Media Segment Scan again where the commercial segments gone. ### Reproduction steps 1. Have the Chapter Segments Provider plugin detect a chapter as a commercial 2. Change the Chapter Segments Provider settings so that the chapter will not be identified as a commercial 3. Run the Media Segment Scan task ### What is the current _bug_ behavior? The chapter is still identified as a commercial ### What is the expected _correct_ behavior? The chapter to not be identified as a commercial ### Jellyfin Server version 10.10.0+ ### Specify commit id _No response_ ### Specify unstable release number _No response_ ### Specify version number _No response_ ### Specify the build version 10.10.7 ### Environment ```markdown - OS: Ubuntu 24.04.2 LTS - Linux Kernel: - Virtualization: Docker - Clients: Browser, Infuse on Apple TV, Infuse on iOS - Browser: Safari on iOS - FFmpeg Version: - Playback Method: Direct Play - Hardware Acceleration: none - GPU Model: - Plugins: Chapter Segments Provider - Reverse Proxy: - Base URL: - Networking: - Storage: ``` ### Jellyfin logs ```shell [07:41:07] [ERR] [29] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file1.mkv System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('25702350000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks') Actual value was 25702350000. at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName) at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken) [07:41:07] [ERR] [29] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file2.mkv System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('28154380000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks') Actual value was 28154380000. at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName) at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken) [07:41:08] [ERR] [29] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file3.mkv System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('31982790000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks') Actual value was 31982790000. at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName) at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken) [07:41:08] [ERR] [29] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file4.mkv System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('32546270000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks') Actual value was 32546270000. at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName) at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken) [07:56:44] [ERR] [3] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file1.mkv System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('25702350000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks') Actual value was 25702350000. at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName) at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken) [07:56:44] [ERR] [3] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file2.mkv System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('28154380000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks') Actual value was 28154380000. at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName) at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken) [07:56:44] [ERR] [3] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file3.mkv System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('31982790000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks') Actual value was 31982790000. at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName) at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken) [07:56:44] [ERR] [3] Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager: Provider Chapter Segments Provider failed to extract segments from file4.mkv System.ArgumentOutOfRangeException: mediaSegment.EndTicks ('32546270000') must be greater than or equal to '863999970000'. (Parameter 'mediaSegment.EndTicks') Actual value was 32546270000. at System.ArgumentOutOfRangeException.ThrowLess[T](T value, T other, String paramName) at System.ArgumentOutOfRangeException.ThrowIfLessThan[T](T value, T other, String paramName) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.CreateSegmentAsync(MediaSegmentDto mediaSegment, String segmentProviderId) at Jellyfin.Server.Implementations.MediaSegments.MediaSegmentManager.RunSegmentPluginProviders(BaseItem baseItem, Boolean overwrite, CancellationToken cancellationToken) ``` ### FFmpeg logs ```shell ``` ### Client / Browser logs _No response_ ### Relevant screenshots or videos _No response_ ### Additional information _No response_
OVERLORD added the bugconfirmed labels 2026-02-07 04:24:27 +03:00
Author
Owner

@d3nnis77 commented on GitHub (May 30, 2025):

Can confirm this bug.

It also does not apply new rules.
As the media segment task takes literally no time to complete, it seems like it only tries to check new files and not update existing segments.

@ioqy Where is this "MediaSegments table" that has to be deleted as a workaround?

@d3nnis77 commented on GitHub (May 30, 2025): Can confirm this bug. It also does not apply new rules. As the media segment task takes literally no time to complete, it seems like it only tries to check new files and not update existing segments. @ioqy Where is this "MediaSegments table" that has to be deleted as a workaround?
Author
Owner

@ioqy commented on GitHub (May 30, 2025):

@d3nnis77 In the SQLite database config/data/jellyfin.db

@ioqy commented on GitHub (May 30, 2025): @d3nnis77 In the SQLite database `config/data/jellyfin.db`
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#7015