[10.11] Logs filled with extraneous complaints about permissions issues in unused path #7432

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

Originally created by @Diatrus on GitHub (Oct 20, 2025).

Description of the bug

After upgrading to jellyfin 10.11 and checking logs to ensure the migration went as expected, found a continuous stream of errors populating regarding a systemd temporary directory location that I’ve not configured jellyfin to use.

I’ve ensured the service is setup to not use this systemd-logind feature: systemctl show jellyfin | grep Private PrivateTmp=no PrivateDevices=no PrivateNetwork=no PrivateUsers=no PrivateMounts=no PrivateIPC=no and my local configuration is set to use the regular system /tmp which is populated and functions fine.

I’ll also paste the log output here showing the directories used in the configuration, which are being used correctly as far as I can see [2025-10-20 00:07:08.669 -04:00] [INF] Program data path: "/var/lib/jellyfin" [2025-10-20 00:07:08.669 -04:00] [INF] Log directory path: "/var/log/jellyfin" [2025-10-20 00:07:08.669 -04:00] [INF] Config directory path: "/etc/jellyfin" [2025-10-20 00:07:08.669 -04:00] [INF] Cache path: "/var/cache/jellyfin" [2025-10-20 00:07:08.669 -04:00] [INF] Temp directory path: "/tmp/jellyfin" [2025-10-20 00:07:08.669 -04:00] [INF] Web resources path: "/usr/share/jellyfin/web" [2025-10-20 00:07:08.669 -04:00] [INF] Application directory: "/usr/lib/jellyfin/bin/" [2025-10-20 00:07:08.675 -04:00] [INF] Storage path `"/var/lib/jellyfin/data"` (Fixed) successfully checked with "1.5TB" free which is over the minimum of "2GB". [2025-10-20 00:07:08.676 -04:00] [INF] Storage path `"/var/log/jellyfin"` (Fixed) successfully checked with "1.5TB" free which is over the minimum of "512MB". [2025-10-20 00:07:08.676 -04:00] [INF] Storage path `"/var/cache/jellyfin"` (Fixed) successfully checked with "1.5TB" free which is over the minimum of "2GB". [2025-10-20 00:07:08.676 -04:00] [INF] Storage path `"/var/lib/jellyfin"` (Fixed) successfully checked with "1.5TB" free which is over the minimum of "2GB". [2025-10-20 00:07:08.676 -04:00] [INF] Storage path `"/tmp/jellyfin"` (Ram) successfully checked with "100GB" free which is over the minimum of "2GB". [2025-10-20 00:07:08.677 -04:00] [INF] Setting cache path: "/var/cache/jellyfin" [2025-10-20 00:07:08.719 -04:00] [INF] SQLite connection string: "Data Source=/var/lib/jellyfin/data/jellyfin.db;Cache=Default;Pooling=True"

When looking at logs from the 19th (yesterday, version 10.10.7) this message did not appear, and has only started to show after this upgrade.

Reproduction steps

  1. Start jellyfin
  2. View logs

What is the current bug behavior?

These messages continuously populate, making it nearly impossible to get any useful info out of the logs. It does not stop at any point in the server’s operation.

What is the expected correct behavior?

No logs regarding that path.

Jellyfin Server version

10.10.0+

Specify commit id

No response

Specify unstable release number

No response

Specify version number

10.11.0

Specify the build version

N/A (build version blank)

Environment

- OS: Ubuntu 24.04
- Linux Kernel: 6.14.11
- Virtualization:
- Clients:
- Browser:
- FFmpeg Version:
- Playback Method:
- Hardware Acceleration:
- GPU Model:
- Plugins:
- Reverse Proxy:
- Base URL:
- Networking:
- Jellyfin Data Storage: Local SSD
- Media Storage: Local HDD
- External Integrations:

Jellyfin logs

2025-10-20 00:46:26.289 -04:00] [ERR] Error processing request. URL "GET" "/System/Info".
System.UnauthorizedAccessException: Access to the path '/tmp/systemd-private-3dbc3270507843aeb76a62cbe5985c74-systemd-logind.service-o2Wqlp' is denied.
 ---> System.IO.IOException: Permission denied
   --- End of inner exception stack trace ---
   at System.IO.Enumeration.FileSystemEnumerator`1.DequeueNextDirectory()
   at System.IO.Enumeration.FileSystemEnumerator`1.MoveNext()
   at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found)
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Emby.Server.Implementations.AppBase.BaseApplicationPaths.CheckOrCreateMarker(String path, String markerName, Boolean recursive)
   at Emby.Server.Implementations.AppBase.BaseApplicationPaths.CreateAndCheckMarker(String path, String markerName, Boolean recursive)
   at MediaBrowser.Common.Configuration.EncodingConfigurationExtensions.GetTranscodePath(IConfigurationManager configurationManager)
   at Emby.Server.Implementations.SystemManager.GetSystemInfo(HttpRequest request)
   at lambda_method1004(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)

FFmpeg logs


Client / Browser logs

No response

Relevant screenshots or videos

Image

Additional information

The “paths” section of the dashboard also does not populate now, and just continuously shows as loading. This may or may not be related, but I thought it would be worth mentioning. See the screenshot.

Originally created by @Diatrus on GitHub (Oct 20, 2025). ### Description of the bug After upgrading to jellyfin 10.11 and checking logs to ensure the migration went as expected, found a continuous stream of errors populating regarding a systemd temporary directory location that I’ve not configured jellyfin to use. I’ve ensured the service is setup to not use this systemd-logind feature: ```systemctl show jellyfin | grep Private PrivateTmp=no PrivateDevices=no PrivateNetwork=no PrivateUsers=no PrivateMounts=no PrivateIPC=no``` and my local configuration is set to use the regular system `/tmp` which is populated and functions fine. I’ll also paste the log output here showing the directories used in the configuration, which are being used correctly as far as I can see ```[2025-10-20 00:07:08.669 -04:00] [INF] Program data path: "/var/lib/jellyfin" [2025-10-20 00:07:08.669 -04:00] [INF] Log directory path: "/var/log/jellyfin" [2025-10-20 00:07:08.669 -04:00] [INF] Config directory path: "/etc/jellyfin" [2025-10-20 00:07:08.669 -04:00] [INF] Cache path: "/var/cache/jellyfin" [2025-10-20 00:07:08.669 -04:00] [INF] Temp directory path: "/tmp/jellyfin" [2025-10-20 00:07:08.669 -04:00] [INF] Web resources path: "/usr/share/jellyfin/web" [2025-10-20 00:07:08.669 -04:00] [INF] Application directory: "/usr/lib/jellyfin/bin/" [2025-10-20 00:07:08.675 -04:00] [INF] Storage path `"/var/lib/jellyfin/data"` (Fixed) successfully checked with "1.5TB" free which is over the minimum of "2GB". [2025-10-20 00:07:08.676 -04:00] [INF] Storage path `"/var/log/jellyfin"` (Fixed) successfully checked with "1.5TB" free which is over the minimum of "512MB". [2025-10-20 00:07:08.676 -04:00] [INF] Storage path `"/var/cache/jellyfin"` (Fixed) successfully checked with "1.5TB" free which is over the minimum of "2GB". [2025-10-20 00:07:08.676 -04:00] [INF] Storage path `"/var/lib/jellyfin"` (Fixed) successfully checked with "1.5TB" free which is over the minimum of "2GB". [2025-10-20 00:07:08.676 -04:00] [INF] Storage path `"/tmp/jellyfin"` (Ram) successfully checked with "100GB" free which is over the minimum of "2GB". [2025-10-20 00:07:08.677 -04:00] [INF] Setting cache path: "/var/cache/jellyfin" [2025-10-20 00:07:08.719 -04:00] [INF] SQLite connection string: "Data Source=/var/lib/jellyfin/data/jellyfin.db;Cache=Default;Pooling=True"``` When looking at logs from the 19th (yesterday, version 10.10.7) this message did not appear, and has only started to show after this upgrade. ### Reproduction steps 1. Start jellyfin 2. View logs ### What is the current _bug_ behavior? These messages continuously populate, making it nearly impossible to get any useful info out of the logs. It does not stop at any point in the server’s operation. ### What is the expected _correct_ behavior? No logs regarding that path. ### Jellyfin Server version 10.10.0+ ### Specify commit id _No response_ ### Specify unstable release number _No response_ ### Specify version number 10.11.0 ### Specify the build version N/A (build version blank) ### Environment ```markdown - OS: Ubuntu 24.04 - Linux Kernel: 6.14.11 - Virtualization: - Clients: - Browser: - FFmpeg Version: - Playback Method: - Hardware Acceleration: - GPU Model: - Plugins: - Reverse Proxy: - Base URL: - Networking: - Jellyfin Data Storage: Local SSD - Media Storage: Local HDD - External Integrations: ``` ### Jellyfin logs ```shell 2025-10-20 00:46:26.289 -04:00] [ERR] Error processing request. URL "GET" "/System/Info". System.UnauthorizedAccessException: Access to the path '/tmp/systemd-private-3dbc3270507843aeb76a62cbe5985c74-systemd-logind.service-o2Wqlp' is denied. ---> System.IO.IOException: Permission denied --- End of inner exception stack trace --- at System.IO.Enumeration.FileSystemEnumerator`1.DequeueNextDirectory() at System.IO.Enumeration.FileSystemEnumerator`1.MoveNext() at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found) at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate) at Emby.Server.Implementations.AppBase.BaseApplicationPaths.CheckOrCreateMarker(String path, String markerName, Boolean recursive) at Emby.Server.Implementations.AppBase.BaseApplicationPaths.CreateAndCheckMarker(String path, String markerName, Boolean recursive) at MediaBrowser.Common.Configuration.EncodingConfigurationExtensions.GetTranscodePath(IConfigurationManager configurationManager) at Emby.Server.Implementations.SystemManager.GetSystemInfo(HttpRequest request) at lambda_method1004(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) ``` ### FFmpeg logs ```shell ``` ### Client / Browser logs _No response_ ### Relevant screenshots or videos <img width="630" height="1047" alt="Image" src="https://github.com/user-attachments/assets/1287f5f4-744b-4ab0-9a49-d20357646f0f" /> ### Additional information The “paths” section of the dashboard also does not populate now, and just continuously shows as loading. This may or may not be related, but I thought it would be worth mentioning. See the screenshot.
OVERLORD added the bug label 2026-02-07 04:55:37 +03:00
Author
Owner

@Diatrus commented on GitHub (Oct 20, 2025):

Issue resolved on my end:
In case anyone else encounters this issue in the future and needs it fixed, the resolution was to swap my transcoding directory from /tmp to /tmp/jellyfin-transcodes.
The behavior that previously worked, just transcoding straight to /tmp, broke in 10.11. Specifying the subdirectory resolved it.

@Diatrus commented on GitHub (Oct 20, 2025): Issue resolved on my end: In case anyone else encounters this issue in the future and needs it fixed, the resolution was to swap my transcoding directory from `/tmp` to `/tmp/jellyfin-transcodes`. The behavior that previously worked, just transcoding straight to /tmp, broke in 10.11. Specifying the subdirectory resolved it.
Author
Owner

@joshuaboniface commented on GitHub (Oct 20, 2025):

The reason is the dashboard space reporting which is now part of 10.11. It needs to scan the contents of the folders that Jellyfin is using for configuration and data storage, including transcoding temporary storage. /tmp will contain various files created by other processes that Jellyfin won't be able to read, and hence throw this error.

We generally recommend setting a specific path like that, rather than using a system folder, especially since that can have other adverse affects (in this case, the transcoding temp cleanup job would likely be trying to delete files from /tmp, and failing, previously - might not matter but also might).

@joshuaboniface commented on GitHub (Oct 20, 2025): The reason is the dashboard space reporting which is now part of 10.11. It needs to scan the contents of the folders that Jellyfin is using for configuration and data storage, including transcoding temporary storage. `/tmp` will contain various files created by other processes that Jellyfin won't be able to read, and hence throw this error. We generally recommend setting a specific path like that, rather than using a system folder, especially since that can have other adverse affects (in this case, the transcoding temp cleanup job would likely be trying to delete files from `/tmp`, and failing, previously - might not matter but also might).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#7432