Remote Control only visible and working for Admin Users #6300

Closed
opened 2026-02-07 03:24:43 +03:00 by OVERLORD · 20 comments
Owner

Originally created by @ghost on GitHub (Sep 25, 2024).

This issue respects the following points:

  • This is a bug, not a question or a configuration issue; Please visit our forum or chat rooms first to troubleshoot with volunteers, before creating a report. The links can be found here.
  • This issue is not already reported on GitHub (I've searched it).
  • I'm using an up to date version of Jellyfin Server stable, unstable or master; We generally do not support previous older versions. If possible, please update to the latest version before opening an issue.
  • I agree to follow Jellyfin's Code of Conduct.
  • This report addresses only a single issue; If you encounter multiple issues, kindly create separate reports for each one.

Description of the bug

If I select a device for remote control with a usere without admin rights the control bar at the bottom is missing and the remote control layer is not working.
With an admin user everything is working fine. This happens in web version and the MacOS App.

Reproduction steps

  1. deselect "Allow this user to manage the server" option for a user and save
  2. login with this user into web app or desktop app
  3. select a device to remote control on the top bar (third icon from right - cast to device)
  4. the remote control bar at the bottom does not appear
  5. hit the cast to device button again
  6. select Remote control
  7. everything is empty

What is the current bug behavior?

remote control is not working for non admin users

What is the expected correct behavior?

remote control should work for non admin users the same for admin users

Jellyfin Server version

Older*

Specify commit id

No response

Specify unstable release number

No response

Specify version number

10.9.10

Specify the build version

10.9.10

Environment

- OS:
- Linux Kernel:
- Virtualization:
- Clients:
- Browser:
- FFmpeg Version:
- Playback Method:
- Hardware Acceleration:
- GPU Model:
- Plugins:
- Reverse Proxy:
- Base URL:
- Networking:
- Storage:

Jellyfin logs

no log

FFmpeg logs

No response

Client / Browser logs

No response

Relevant screenshots or videos

No response

Additional information

No response

Originally created by @ghost on GitHub (Sep 25, 2024). ### This issue respects the following points: - [X] This is a **bug**, not a question or a configuration issue; Please visit our forum or chat rooms first to troubleshoot with volunteers, before creating a report. The links can be found [here](https://jellyfin.org/contact/). - [X] This issue is **not** already reported on [GitHub](https://github.com/jellyfin/jellyfin/issues?q=is%3Aopen+is%3Aissue) _(I've searched it)_. - [X] I'm using an up to date version of Jellyfin Server stable, unstable or master; We generally do not support previous older versions. If possible, please update to the latest version before opening an issue. - [X] I agree to follow Jellyfin's [Code of Conduct](https://jellyfin.org/docs/general/community-standards.html#code-of-conduct). - [X] This report addresses only a single issue; If you encounter multiple issues, kindly create separate reports for each one. ### Description of the bug If I select a device for remote control with a usere without admin rights the control bar at the bottom is missing and the remote control layer is not working. With an admin user everything is working fine. This happens in web version and the MacOS App. ### Reproduction steps 1. deselect "Allow this user to manage the server" option for a user and save 2. login with this user into web app or desktop app 3. select a device to remote control on the top bar (third icon from right - cast to device) 4. the remote control bar at the bottom does not appear 5. hit the cast to device button again 6. select Remote control 7. everything is empty ### What is the current _bug_ behavior? remote control is not working for non admin users ### What is the expected _correct_ behavior? remote control should work for non admin users the same for admin users ### Jellyfin Server version Older* ### Specify commit id _No response_ ### Specify unstable release number _No response_ ### Specify version number 10.9.10 ### Specify the build version 10.9.10 ### Environment ```markdown - OS: - Linux Kernel: - Virtualization: - Clients: - Browser: - FFmpeg Version: - Playback Method: - Hardware Acceleration: - GPU Model: - Plugins: - Reverse Proxy: - Base URL: - Networking: - Storage: ``` ### Jellyfin logs ```shell no log ``` ### FFmpeg logs _No response_ ### Client / Browser logs _No response_ ### Relevant screenshots or videos _No response_ ### Additional information _No response_
OVERLORD added the bug label 2026-02-07 03:24:43 +03:00
Author
Owner

@felix920506 commented on GitHub (Sep 25, 2024):

What type of device are you trying to control? Is it DLNA?

@felix920506 commented on GitHub (Sep 25, 2024): What type of device are you trying to control? Is it DLNA?
Author
Owner

@ghost commented on GitHub (Sep 25, 2024):

It doesn't matter which device. The behavior is the same with every device (Smart TV, Web Browser, App).

It works as soon as I check "Allow this user to manage the server" for a user.

@ghost commented on GitHub (Sep 25, 2024): It doesn't matter which device. The behavior is the same with every device (Smart TV, Web Browser, App). It works as soon as I check "Allow this user to manage the server" for a user.
Author
Owner

@gnattu commented on GitHub (Sep 25, 2024):

Screenshot 2024-09-26 at 01 19 07

Did you enable any of these?

@gnattu commented on GitHub (Sep 25, 2024): <img width="835" alt="Screenshot 2024-09-26 at 01 19 07" src="https://github.com/user-attachments/assets/2cc121e6-bcd3-49a6-9bed-2cd7e638e843"> Did you enable any of these?
Author
Owner

@ghost commented on GitHub (Sep 26, 2024):

Both are enabled.

@ghost commented on GitHub (Sep 26, 2024): Both are enabled.
Author
Owner

@josephfh commented on GitHub (Oct 2, 2024):

Experiencing the same with a fresh install on linux. Version 10.9.11

@josephfh commented on GitHub (Oct 2, 2024): Experiencing the same with a fresh install on linux. Version 10.9.11
Author
Owner

@zsamiatt commented on GitHub (Oct 29, 2024):

I updated jellfyn docker to 10.10.0. The send to function working with admin right in this version. No error in log. No settings.

@zsamiatt commented on GitHub (Oct 29, 2024): I updated jellfyn docker to 10.10.0. The send to function working with admin right in this version. No error in log. No settings.
Author
Owner

@ghost commented on GitHub (Oct 29, 2024):

Congratulations, now the "cast to device" function isn't even working any more without admin rights. Clicking the Button shows up an endless spinner. Tested it with the lates Mac client and the web version.
I recommend everyone not to update to version 10.10.0.
Screenshot 2024-10-29 at 07 48 00

@ghost commented on GitHub (Oct 29, 2024): Congratulations, now the "cast to device" function isn't even working any more without admin rights. Clicking the Button shows up an endless spinner. Tested it with the lates Mac client and the web version. I recommend everyone not to update to version 10.10.0. <img width="306" alt="Screenshot 2024-10-29 at 07 48 00" src="https://github.com/user-attachments/assets/6dfc9689-b8d9-4ead-97be-636819cb9daa">
Author
Owner

@nielsvanvelzen commented on GitHub (Oct 29, 2024):

No need for salty comments, you won't achieve anything with that. I've tested it just now and everything is working fine for me. Without more information about your setup we won't be able to help.

@nielsvanvelzen commented on GitHub (Oct 29, 2024): No need for salty comments, you won't achieve anything with that. I've tested it just now and everything is working fine for me. Without more information about your setup we won't be able to help.
Author
Owner

@ghost commented on GitHub (Oct 29, 2024):

LOL, without more information about your setup you can claim everything.

Setup:

  • Jellyfin 10.10.0 running in docker on Synology NAS
  • Mac Web Client in Safari and Firefox latest version
  • LG Client
  • Jellyfin iOS App latest version
  • Allow this user to manage the server, Allow this user to manage collections, Allow this user to edit subtitles -> all unselected
  • Allow remote control of other users, Allow remote control of shared devices -> all selected

Before version 10.10.0 I can take control over an other device by clicking "cast to device" but the control bar at the bottom wan't be displayed with the given settings.
After upgrading to 10.10.0 a click on "cast to device" is only working if "Allow this user to manage the server" (in my opinion this is equal to an admin) is ticked. If not, there will be an endless spinner displayed with all clients. So the update fixed the missing control bar by showing an endless spinner ... congratulations again ... bug fixed by creating another one.
A few versions ago everything worked without the need to give users the right to manage the server. Now not even the "cast to device" function is working without these right.
So asking for the setup is a bullshit argument because with the admin checkbox ticked everything is working like expected. So this is not an issue of the setup. It's an implementation issue.
If it is wanted from you to not allow casting to devices for non admin users then disable the button or just don't show it. This would be a much better UX then the current behavior.

So I guess its time to switch to a more professional media server with more professionals...

This error is desplayed in the log:

[ERR] [86] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/Sessions".
System.NullReferenceException: Object reference not set to an instance of an object.
   at Emby.Server.Implementations.Session.SessionManager.<>c.<GetSessions>b__110_2(SessionInfo r)
   at System.Linq.Utilities.<>c__DisplayClass2_0`3.<CombineSelectors>b__0(TSource x)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.ToList()
   at Emby.Server.Implementations.Session.SessionManager.GetSessions(Guid userId, String deviceId, Nullable`1 activeWithinSeconds, Nullable`1 controllableUserToCheck, Boolean isApiKey)
   at Jellyfin.Api.Controllers.SessionController.GetSessions(Nullable`1 controllableByUserId, String deviceId, Nullable`1 activeWithinSeconds)
   at lambda_method1262(Closure, Object, Object[])
   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 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)
@ghost commented on GitHub (Oct 29, 2024): LOL, without more information about your setup you can claim everything. Setup: - Jellyfin 10.10.0 running in docker on Synology NAS - Mac Web Client in Safari and Firefox latest version - LG Client - Jellyfin iOS App latest version - Allow this user to manage the server, Allow this user to manage collections, Allow this user to edit subtitles -> all unselected - Allow remote control of other users, Allow remote control of shared devices -> all selected Before version 10.10.0 I can take control over an other device by clicking "cast to device" but the control bar at the bottom wan't be displayed with the given settings. After upgrading to 10.10.0 a click on "cast to device" is only working if "Allow this user to manage the server" (in my opinion this is equal to an admin) is ticked. If not, there will be an endless spinner displayed with all clients. So the update fixed the missing control bar by showing an endless spinner ... congratulations again ... bug fixed by creating another one. A few versions ago everything worked without the need to give users the right to manage the server. Now not even the "cast to device" function is working without these right. So asking for the setup is a bullshit argument because with the admin checkbox ticked everything is working like expected. So this is not an issue of the setup. It's an implementation issue. If it is wanted from you to not allow casting to devices for non admin users then disable the button or just don't show it. This would be a much better UX then the current behavior. So I guess its time to switch to a more professional media server with more professionals... This error is desplayed in the log: ``` [ERR] [86] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/Sessions". System.NullReferenceException: Object reference not set to an instance of an object. at Emby.Server.Implementations.Session.SessionManager.<>c.<GetSessions>b__110_2(SessionInfo r) at System.Linq.Utilities.<>c__DisplayClass2_0`3.<CombineSelectors>b__0(TSource x) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.ToList() at Emby.Server.Implementations.Session.SessionManager.GetSessions(Guid userId, String deviceId, Nullable`1 activeWithinSeconds, Nullable`1 controllableUserToCheck, Boolean isApiKey) at Jellyfin.Api.Controllers.SessionController.GetSessions(Nullable`1 controllableByUserId, String deviceId, Nullable`1 activeWithinSeconds) at lambda_method1262(Closure, Object, Object[]) 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 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) ```
Author
Owner

@snaakey commented on GitHub (Oct 29, 2024):

Having the same issue. When clicking on the cast icon the request to https://example.com/Sessions?ControllableByUserId=<id> returns a 500 with the same trace as above. I'm also running Jellyfin 10.10.0 and it also only happens with non admin accounts.

@snaakey commented on GitHub (Oct 29, 2024): Having the same issue. When clicking on the cast icon the request to `https://example.com/Sessions?ControllableByUserId=<id>` returns a 500 with the same trace as above. I'm also running Jellyfin 10.10.0 and it also only happens with non admin accounts.
Author
Owner

@ghost commented on GitHub (Oct 29, 2024):

Are you kidding marking a hint that the "so called fix" doesn't work as "off-topic".

So, I move to Emby now. This is very unprofessional here.

@ghost commented on GitHub (Oct 29, 2024): Are you kidding marking a hint that the "so called fix" doesn't work as "off-topic". So, I move to Emby now. This is very unprofessional here.
Author
Owner

@spacemanspiff2007 commented on GitHub (Oct 30, 2024):

I'm having the same issue

@spacemanspiff2007 commented on GitHub (Oct 30, 2024): I'm having the same [issue](https://github.com/jellyfin/jellyfin-plugin-dlna/issues/48#issuecomment-2443175730)
Author
Owner

@ghost commented on GitHub (Oct 30, 2024):

My suggestion is to switch to Emby ... the devs here doesn't care about the bugs.

@ghost commented on GitHub (Oct 30, 2024): My suggestion is to switch to Emby ... the devs here doesn't care about the bugs.
Author
Owner

@ghost commented on GitHub (Oct 30, 2024):

LOL - nielsvanvelzen fixed a bug that he do not have on his system. And he is censoring comments. Best dev of the world.

@ghost commented on GitHub (Oct 30, 2024): LOL - [nielsvanvelzen](https://github.com/nielsvanvelzen) fixed a bug that he do not have on his system. And he is censoring comments. Best dev of the world.
Author
Owner

@cvium commented on GitHub (Oct 30, 2024):

LOL - nielsvanvelzen fixed a bug that he do not have on his system. And he is censoring comments. Best dev of the world.

No one is censoring your comments. I marked it as abuse because it is.

Remember the human. Consider this your last warning.

@cvium commented on GitHub (Oct 30, 2024): > LOL - [nielsvanvelzen](https://github.com/nielsvanvelzen) fixed a bug that he do not have on his system. And he is censoring comments. Best dev of the world. No one is censoring your comments. I marked it as abuse because it is. Remember the human. Consider this your last warning.
Author
Owner

@ghost commented on GitHub (Oct 30, 2024):

LOL ... last warning ... funny. Fix your bugs instead of threatening people reporting these bugs. So typical ...

@ghost commented on GitHub (Oct 30, 2024): LOL ... last warning ... funny. Fix your bugs instead of threatening people reporting these bugs. So typical ...
Author
Owner

@joshuaboniface commented on GitHub (Oct 30, 2024):

@moonshRiner1337 Congratulations, you are banned from contributing to Jellyfin. You were warned to treat people with respect and you continue to abuse our team. You can take your "business" somewhere else.

This problem seems to still exist, so this issue can remain open.

@joshuaboniface commented on GitHub (Oct 30, 2024): @moonshRiner1337 Congratulations, you are banned from contributing to Jellyfin. You were warned to treat people with respect and you continue to abuse our team. You can take your "business" somewhere else. This problem seems to still exist, so this issue can remain open.
Author
Owner

@felix920506 commented on GitHub (Oct 31, 2024):

closing as fixed by #12915

@felix920506 commented on GitHub (Oct 31, 2024): closing as fixed by #12915
Author
Owner

@spacemanspiff2007 commented on GitHub (Oct 31, 2024):

Thank you for the fix. Is there any change it will make it into an official hot fix in the next couple of days?

@spacemanspiff2007 commented on GitHub (Oct 31, 2024): Thank you for the fix. Is there any change it will make it into an official hot fix in the next couple of days?
Author
Owner

@crobibero commented on GitHub (Oct 31, 2024):

There is no ETA for the next release of Jellyfin (10.10.1)

@crobibero commented on GitHub (Oct 31, 2024): There is no ETA for the next release of Jellyfin (10.10.1)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#6300