Error processing request. URL "POST" "/Playlists". #6973

Open
opened 2025-12-22 05:03:26 +01:00 by backuprepo · 4 comments
Owner

Originally created by @bluezfan8 on GitHub (Apr 29, 2025).

Description of the bug

After creating a fresh container of Jellyfin via Docker image, jellyfin/jellyfin:10.10.7, I was not able to create a playlist with my movie files. When I would go into my library, and click on the 3-dot menu button on the movie poster, and click "Add to playlist', I would eventually get an error on the screen saying "Error creating playlist". This was the first playlist I tried to create on the new container. Looking in the Jellyfin logs, after trying to create the playlist, I noticed the error I was getting.

Reproduction steps

  1. Log into Jellyfin
  2. Navigate to movie/media library
  3. Click on 3-dot menu in bottom right of the media's poster
  4. Choose "Add to playlist"
  5. Choose "new" from the drop down menu
  6. Enter desired name
  7. Leave public access unchecked
  8. Click "save"

What is the current bug behavior?

You'll get in the bottom left of the Jellyfin webUI an error stating "Error creating playlist".

What is the expected correct behavior?

The expected behavior would be that the playlist name I defined would be created and the media item would be added.

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: Debian 11
- Linux Kernel: 5.10.0-34-amd64
- Virtualization: Docker
- Clients: webUI
- Browser: Chrome/Firefox
- FFmpeg Version: 
- Playback Method:
- Hardware Acceleration:
- GPU Model:
- Plugins:
- Reverse Proxy:
- Base URL:
- Networking: Host
- Storage: local

Jellyfin logs

ERR] [39] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "POST" "/Playlists".
System.ArgumentException: parentFolder
   at Emby.Server.Implementations.Playlists.PlaylistManager.CreatePlaylist(PlaylistCreationRequest request)
   at Jellyfin.Api.Controllers.PlaylistsController.CreatePlaylist(String name, IReadOnlyList1 ids, Nullable1 userId, Nullable1 mediaType, CreatePlaylistDto createPlaylistRequest)
   at lambda_method1775(Closure, Object)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask1 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()
--- 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 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)

FFmpeg logs


Client / Browser logs

No response

Relevant screenshots or videos

No response

Additional information

I was able to resolve the issue by going into [docker bind path]/config/data and make a directory "Playlists". I then did a docker compose down and a docker compose up -d. Once the container came back up, I was able to create playlists and add media items to them.

Originally created by @bluezfan8 on GitHub (Apr 29, 2025). ### Description of the bug After creating a fresh container of Jellyfin via Docker image, jellyfin/jellyfin:10.10.7, I was not able to create a playlist with my movie files. When I would go into my library, and click on the 3-dot menu button on the movie poster, and click "Add to playlist', I would eventually get an error on the screen saying "Error creating playlist". This was the first playlist I tried to create on the new container. Looking in the Jellyfin logs, after trying to create the playlist, I noticed the error I was getting. ### Reproduction steps 1. Log into Jellyfin 2. Navigate to movie/media library 3. Click on 3-dot menu in bottom right of the media's poster 4. Choose "Add to playlist" 5. Choose "new" from the drop down menu 6. Enter desired name 7. Leave public access unchecked 8. Click "save" ### What is the current _bug_ behavior? You'll get in the bottom left of the Jellyfin webUI an error stating "Error creating playlist". ### What is the expected _correct_ behavior? The expected behavior would be that the playlist name I defined would be created and the media item would be added. ### 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: Debian 11 - Linux Kernel: 5.10.0-34-amd64 - Virtualization: Docker - Clients: webUI - Browser: Chrome/Firefox - FFmpeg Version: - Playback Method: - Hardware Acceleration: - GPU Model: - Plugins: - Reverse Proxy: - Base URL: - Networking: Host - Storage: local ``` ### Jellyfin logs ```shell ERR] [39] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "POST" "/Playlists". System.ArgumentException: parentFolder at Emby.Server.Implementations.Playlists.PlaylistManager.CreatePlaylist(PlaylistCreationRequest request) at Jellyfin.Api.Controllers.PlaylistsController.CreatePlaylist(String name, IReadOnlyList1 ids, Nullable1 userId, Nullable1 mediaType, CreatePlaylistDto createPlaylistRequest) at lambda_method1775(Closure, Object) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask1 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() --- 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 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) ``` ### FFmpeg logs ```shell ``` ### Client / Browser logs _No response_ ### Relevant screenshots or videos _No response_ ### Additional information I was able to resolve the issue by going into [docker bind path]/config/data and make a directory "Playlists". I then did a `docker compose down` and a `docker compose up -d`. Once the container came back up, I was able to create playlists and add media items to them.
backuprepo added the
confirmed
bug
labels 2025-12-22 05:03:26 +01:00
Author
Owner

@jhparker88 commented on GitHub (Apr 29, 2025):

ERR] [39] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "POST" "/Playlists".
System.ArgumentException: parentFolder

According to your log, parentFolder is null and as seen in [1], it is expected to raise an exception. I don't know why parentFolder is null maybe an authorization issue or something else given the exception is not given much information about the situation I'm unable to give any additional advice. Maybe @Shadowghost has any idea?

[1] https://github.com/jellyfin/jellyfin/blob/master/Emby.Server.Implementations/Playlists/PlaylistManager.cs#L84C1-L88

@jhparker88 commented on GitHub (Apr 29, 2025): > ERR] [39] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "POST" "/Playlists". System.ArgumentException: parentFolder According to your log, `parentFolder` is null and as seen in [1], it is expected to raise an exception. I don't know why `parentFolder` is null maybe an authorization issue or something else given the exception is not given much information about the situation I'm unable to give any additional advice. Maybe @Shadowghost has any idea? [1] https://github.com/jellyfin/jellyfin/blob/master/Emby.Server.Implementations/Playlists/PlaylistManager.cs#L84C1-L88
Author
Owner

@bluezfan8 commented on GitHub (Apr 30, 2025):

I should have also mentioned that Collections worked just fine. When I went and looked in [docker bind path]/config/data, I noticed the [docker bind path]/config/data/collections path was present, and had the collections I had already created. When looking in [docker bind path]/config/data/playlists, there was nothing(since I was getting the error).

Now that I added the "Playlists" folder in [docker bind path]/config/data, I could create playlists. When I go back and look in [docker bind path]/config/data/playlists, the playlists that I created are present. The [docker bind path]/config/data/Playlist folder that I created is empty. To test, I deleted the [docker bind path]/config/data/Playlist folder, and took the container down and up again, and I'm still able to create playlists. The [docker bind path]/config/data/playlists, [docker bind path]/config/data/Playlists(while it was present), and [docker bind path]/config/data/collections all have the same permissions. I needed to start the container in a hurry, and am having it run as root. All 3 directories are owned by root:root, and have permissions of rwxr-xr-x.

I did spin up a 2nd instance on the same machine, with different bind volumes, and am not having the issue I was getting before.

@bluezfan8 commented on GitHub (Apr 30, 2025): I should have also mentioned that Collections worked just fine. When I went and looked in [docker bind path]/config/data, I noticed the [docker bind path]/config/data/collections path was present, and had the collections I had already created. When looking in [docker bind path]/config/data/playlists, there was nothing(since I was getting the error). Now that I added the "Playlists" folder in [docker bind path]/config/data, I could create playlists. When I go back and look in [docker bind path]/config/data/playlists, the playlists that I created are present. The [docker bind path]/config/data/Playlist folder that I created is empty. To test, I deleted the [docker bind path]/config/data/Playlist folder, and took the container down and up again, and I'm still able to create playlists. The [docker bind path]/config/data/playlists, [docker bind path]/config/data/Playlists(while it was present), and [docker bind path]/config/data/collections all have the same permissions. I needed to start the container in a hurry, and am having it run as root. All 3 directories are owned by **root:root**, and have permissions of **rwxr-xr-x**. I did spin up a 2nd instance on the same machine, with different bind volumes, and am not having the issue I was getting before.
Author
Owner

@macgirvin commented on GitHub (Aug 24, 2025):

To confirm the most recent comment, I recently installed jellyfin on Ubuntu and encountered the same issue (native server, not docker). It was resolved by creating a directory /var/lib/jellyfin/data/Playlists - (when /var/lib/jellyfin/data/playlists {lowercase] already exists. So it requires the 'Playlists' directory, but doesn't use it, and stores everything in 'playlists'. I would suggest this might be related to the fact that Playlists and playlists are different file paths under Linux - but not in Windows; and capitalisation isn't being applied consistently somewhere in the Linux-specific portions of the codebase.

@macgirvin commented on GitHub (Aug 24, 2025): To confirm the most recent comment, I recently installed jellyfin on Ubuntu and encountered the same issue (native server, not docker). It was resolved by creating a directory /var/lib/jellyfin/data/Playlists - (when /var/lib/jellyfin/data/playlists {lowercase] already exists. So it **requires** the 'Playlists' directory, but doesn't use it, and stores everything in 'playlists'. I would suggest this **might** be related to the fact that Playlists and playlists are different file paths under Linux - but not in Windows; and capitalisation isn't being applied consistently somewhere in the Linux-specific portions of the codebase.
Author
Owner

@hedelas commented on GitHub (Oct 16, 2025):

for anyone having the same issue, I have Jellyfin running on Ubuntu. As @macgirvin said above doing a mkdir /var/lib/jellyfin/data/Playlists then restarting Jellyfin solved this issue for me too.

@hedelas commented on GitHub (Oct 16, 2025): for anyone having the same issue, I have Jellyfin running on Ubuntu. As @macgirvin said above doing a mkdir /var/lib/jellyfin/data/Playlists then restarting Jellyfin solved this issue for me too.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: starred/jellyfin#6973
No description provided.