Jellyfin Web Server Won't Start - Kernal 64 - 2024-07-14
I'm running Linux Mint and I installed Jellyfin via the Software Manager. It had been running fine for months, but when I installed the latest update, Jellyfin can no longer load the web interface, rendering it useless. Here's the output I get when running "jellyfin" from the command line:
Code: [12:46:58] [INF] [1] Main: Jellyfin version: 10.9.7
[12:46:58] [INF] [1] Main: Environment Variables: ["[JELLYFIN_LOG_DIR, /home/kernal64/.local/share/jellyfin/log]"]
[12:46:58] [INF] [1] Main: Arguments: ["/usr/lib/jellyfin/bin/jellyfin.dll"]
[12:46:58] [INF] [1] Main: Operating system: Linux Mint 21.2
[12:46:58] [INF] [1] Main: Architecture: X64
[12:46:58] [INF] [1] Main: 64-Bit Process: True
[12:46:58] [INF] [1] Main: User Interactive: True
[12:46:58] [INF] [1] Main: Processor count: 8
[12:46:58] [INF] [1] Main: Program data path: /home/kernal64/.local/share/jellyfin
[12:46:58] [INF] [1] Main: Log directory path: /home/kernal64/.local/share/jellyfin/log
[12:46:58] [INF] [1] Main: Config directory path: /home/kernal64/.config/jellyfin
[12:46:58] [INF] [1] Main: Cache path: /home/kernal64/.cache/jellyfin
[12:46:58] [INF] [1] Main: Web resources path: /usr/lib/jellyfin/bin/jellyfin-web
[12:46:58] [INF] [1] Main: Application directory: /usr/lib/jellyfin/bin/
[12:46:58] [ERR] [1] Main: The server is expected to host the web client, but the provided content directory is either invalid or empty: /usr/lib/jellyfin/bin/jellyfin-web. If you do not want to host the web client with the server, you may set the '--nowebclient' command line flag, or set'hostwebclient=false' in your config settings
The directory it's looking for is empty. I've been searching online for a solution and found some other people with this error, but the fixes that worked for them doesn't work for me. The solutions I've seen suggested were either:
1) They found that the web interface files were hosted elsewhere and copied them to the directory above.
2) Run Jellyfin with a command line option that tells the program where to look.
In both cases, the result I got was identical:
Code: [12:34:44] [INF] [1] Main: Jellyfin version: 10.9.7
[12:34:44] [INF] [1] Main: Environment Variables: ["[JELLYFIN_LOG_DIR, /home/kernal64/.local/share/jellyfin/log]"]
[12:34:44] [INF] [1] Main: Arguments: ["/usr/lib/jellyfin/bin/jellyfin.dll", "--webdir=/usr/share/jellyfin/web"]
[12:34:44] [INF] [1] Main: Operating system: Linux Mint 21.2
[12:34:44] [INF] [1] Main: Architecture: X64
[12:34:44] [INF] [1] Main: 64-Bit Process: True
[12:34:44] [INF] [1] Main: User Interactive: True
[12:34:44] [INF] [1] Main: Processor count: 8
[12:34:44] [INF] [1] Main: Program data path: /home/kernal64/.local/share/jellyfin
[12:34:44] [INF] [1] Main: Log directory path: /home/kernal64/.local/share/jellyfin/log
[12:34:44] [INF] [1] Main: Config directory path: /home/kernal64/.config/jellyfin
[12:34:44] [INF] [1] Main: Cache path: /home/kernal64/.cache/jellyfin
[12:34:44] [INF] [1] Main: Web resources path: /usr/share/jellyfin/web
[12:34:44] [INF] [1] Main: Application directory: /usr/lib/jellyfin/bin/
[12:34:44] [INF] [1] Jellyfin.Server.Migrations.MigrationRunner: Marking following migrations as applied because this is a fresh install: ["CreateNetworkConfiguration", "MigrateMusicBrainzTimeout", "MigrateNetworkConfiguration"]
[12:34:44] [INF] [1] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /home/kernal64/.cache/jellyfin
[12:34:44] [INF] [1] Emby.Server.Implementations.ApplicationHost: Loading assemblies
[12:34:44] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN subnets: ["127.0.0.1/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]
[12:34:44] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions: []
[12:34:44] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Used LAN subnets: ["127.0.0.1/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]
[12:34:44] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Filtered interface addresses: ["127.0.0.1", "192.168.1.190", "100.96.178.30", "10.96.0.2", "100.85.0.1"]
[12:34:44] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Bind Addresses ["0.0.0.0"]
[12:34:44] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Remote IP filter is Allowlist
[12:34:44] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Filtered subnets: []
[12:34:45] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: TMDb 10.9.7.0
[12:34:45] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: Studio Images 10.9.7.0
[12:34:45] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: OMDb 10.9.7.0
[12:34:45] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: MusicBrainz 10.9.7.0
[12:34:45] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: AudioDB 10.9.7.0
[12:34:45] [INF] [1] Jellyfin.Server.Migrations.MigrationRunner: Marking following migrations as applied because this is a fresh install: ["DisableTranscodingThrottling", "CreateLoggingConfigHeirarchy", "MigrateActivityLogDatabase", "RemoveDuplicateExtras", "MigrateUserDatabase", "MigrateDisplayPreferencesDatabase", "RemoveDownloadImagesInAdvance", "MigrateAuthenticationDatabase", "FixPlaylistOwner", "MigrateRatingLevels", "FixAudioData"]
[12:34:45] [INF] [1] Main: Kestrel is listening on 0.0.0.0
[12:34:45] [ERR] [1] Jellyfin.Networking.AutoDiscoveryHost: Unable to bind to 0.0.0.0:7359
System.Net.Sockets.SocketException (98): Address already in use
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at Jellyfin.Networking.AutoDiscoveryHost.ListenForAutoDiscoveryMessage(IPAddress listenAddress, CancellationToken cancellationToken)
[12:34:46] [WRN] [1] Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware: The WebRootPath was not found: /home/kernal64/wwwroot. Static files may be unavailable.
[12:34:46] [ERR] [1] Microsoft.Extensions.Hosting.Internal.Host: Hosting failed to start
System.IO.IOException: Failed to bind to address http://0.0.0.0:8096: address already in use.
---> Microsoft.AspNetCore.Connections.AddressInUseException: Address already in use
---> System.Net.Sockets.SocketException (98): Address already in use
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint)
at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
--- End of inner exception stack trace ---
at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<<StartAsync>g__OnBind|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.EndpointsStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindAsync(ListenOptions[] listenOptions, AddressBindContext context, Func`2 useHttps, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__15_1(IHostedService service, CancellationToken token)
at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)
[12:34:46] [ERR] [1] Main: Kestrel failed to start! This is most likely due to an invalid address or port bind - correct your bind configuration in network.xml and try again
[12:34:46] [FTL] [1] Main: Error while starting server
System.IO.IOException: Failed to bind to address http://0.0.0.0:8096: address already in use.
---> Microsoft.AspNetCore.Connections.AddressInUseException: Address already in use
---> System.Net.Sockets.SocketException (98): Address already in use
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint)
at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
--- End of inner exception stack trace ---
at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<<StartAsync>g__OnBind|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.EndpointsStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindAsync(ListenOptions[] listenOptions, AddressBindContext context, Func`2 useHttps, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__15_1(IHostedService service, CancellationToken token)
at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)
at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
at Jellyfin.Server.Program.StartServer(IServerApplicationPaths appPaths, StartupOptions options, IConfiguration startupConfig)
[12:34:46] [INF] [1] Main: Running query planner optimizations in the database... This might take a while
[12:34:46] [INF] [1] Emby.Server.Implementations.ApplicationHost: Disposing CoreAppHost
[12:34:46] [INF] [1] Emby.Server.Implementations.ApplicationHost: Disposing MusicBrainzArtistProvider
[12:34:46] [INF] [1] Emby.Server.Implementations.ApplicationHost: Disposing MusicBrainzAlbumProvider
[12:34:46] [INF] [1] Emby.Server.Implementations.ApplicationHost: Disposing PluginManager
In my troubleshooting efforts, I tried to update Jellyfin from the official repository. It seems to have updated the software, but had no effect on my problem. I've tried purging and reinstalling the jellyfin-web package, which also had no effect. I'm not sure what else to try and I haven't been able to find any other possible solutions around the web. I've thought about uninstalling it from the Software Center and using the curl command in the official documentation to reinstall it, but I don't know if that will cause me to lose all my user info and library metadata, which I'd like to avoid, if possible. Does anyone have any ideas on how to fix this or do I need to go scorched earth?
RE: Jellyfin Web Server Won't Start - TheDreadPirate - 2024-07-14
You don't start Jellyfin by typing "jellyfin". You use systemctl to start it.
Code: sudo systemctl start jellyfin
RE: Jellyfin Web Server Won't Start - Kernal 64 - 2024-07-14
(2024-07-14, 05:35 PM)TheDreadPirate Wrote: You don't start Jellyfin by typing "jellyfin". You use systemctl to start it.
Code: sudo systemctl start jellyfin
I thought I had done this, but I gave it another shot just in case and it seems like nothing happens. The terminal just brings me back to a new command prompt with no output. Checking Jellyfin's status afterwards shows no change.
RE: Jellyfin Web Server Won't Start - TheDreadPirate - 2024-07-14
Ah. You have a zombie jellyfin process.
Code: sudo ps -aux | grep jellyfin
sudo kill -9 <PID of zombie jellyfin process>
RE: Jellyfin Web Server Won't Start - Kernal 64 - 2024-07-14
I appreciate you taking the time to help!
(2024-07-14, 07:09 PM)TheDreadPirate Wrote: Ah. You have a zombie jellyfin process.
Code: sudo ps -aux | grep jellyfin
sudo kill -9 <PID of zombie jellyfin process>
I gave this a try and I think jellyfin is somehow restarting itself. I entered the ps command and got:
Code: jellyfin 4773 8.6 1.3 274555140 219472 ? Ssl 15:47 0:02 /usr/bin/jellyfin --webdir=/usr/share/jellyfin/web --ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg
kernal64 4847 0.0 0.0 9080 2340 pts/0 S+ 15:47 0:00 grep --color=auto jellyfin
Then I ran the kill command for pid 4773. Restarting jellyfin after that produces the same result as before. I ran systemctl stop jellyfin and tried again with the same result and for good measure, I rebooted the computer and tried running the two commands you gave me, but I'm still getting the same error as in my original post. If I try to access the jellyfin web interface, it says "We're unable to connect to the selected server right now. Please ensure it is running and try again."
RE: Jellyfin Web Server Won't Start - TheDreadPirate - 2024-07-15
Do you have jellyfin running with a different method like Docker or something? Did you uninstall the Mint Store Jellyfin app?
|