Skip to content

GalaxySDK Authentication Fails with "Node.js process timed out" Error #85

@c0pper

Description

@c0pper

Describe the bug

When starting the JunimoServer Docker container, the GalaxySDK authentication process consistently times out after exactly 60 seconds when attempting to fetch a Steam app ticket via Node.js. This results in the server crashing with a core dump, preventing the server from starting successfully. The error manifests as "Node.js process timed out" followed by a console input file lock conflict.

Steps to reproduce

Clone the JunimoServer repository or use the provided Docker configuration

Create a .env file from .env.example with the following minimal configuration:
bash

STEAM_USER="..."
STEAM_PASS="..."
VNC_PASSWORD="..."

Use the following docker-compose.yml configuration:
yaml

services:
server:
image: sdvd/server:latest
stdin_open: true
tty: true
container_name: sdvd-server
ports:
- ${GAME_PORT:-24642}:24642/udp
- ${VNC_PORT:-5800}:5800
cap_add:
- SYS_TIME
volumes:
- game-files:/data/Stardew
- saves:/config/xdg/config/StardewValley
environment:
STEAM_USER: "${STEAM_USER}"
STEAM_PASS: "${STEAM_PASS}"
STEAM_GUARD_CODE: "${STEAM_GUARD_CODE:-}"
VNC_PASSWORD: "${VNC_PASSWORD:-}"
DISABLE_RENDERING: "${DISABLE_RENDERING:-true}"
restart: unless-stopped

volumes:
game-files:
saves:

Start the server: docker compose up -d

Check the logs: docker compose logs -f

Expected behavior

The server should successfully authenticate with GalaxySDK using the provided Steam credentials within a reasonable timeframe (under 60 seconds) and proceed to load the game server, allowing players to connect.

Additional context

Full logs:

[app         ] [19:58:28 INFO  JunimoServer] Loading services...

[app         ] [19:58:28 TRACE JunimoServer]    AlwaysOnConfig (JunimoServer.Services.AlwaysOn.AlwaysOnConfig)

[app         ] [19:58:28 TRACE JunimoServer]    AlwaysOnServer (JunimoServer.Services.AlwaysOn.AlwaysOnServer)

[app         ] [19:58:28 TRACE JunimoServer]    CabinManagerService (JunimoServer.Services.CabinManager.CabinManagerService)

[app         ] [19:58:28 TRACE JunimoServer]    ChatCommandsService (JunimoServer.Services.ChatCommands.ChatCommandsService)

[app         ] [19:58:28 TRACE JunimoServer]    CropSaver (JunimoServer.Services.CropSaver.CropSaver)

[app         ] [19:58:28 TRACE JunimoServer]    DesyncKicker (JunimoServer.Services.NetworkTweaks.DesyncKicker)

[app         ] [19:58:28 TRACE JunimoServer]    FarmhandSenderService (JunimoServer.Services.Auth.FarmhandSenderService)

[app         ] [19:58:28 TRACE JunimoServer]    GalaxyAuthService (JunimoServer.Services.Auth.GalaxyAuthService)

[app         ] [19:58:28 TRACE JunimoServer]    GameCreatorService (JunimoServer.Services.GameCreator.GameCreatorService)

[app         ] [19:58:28 TRACE JunimoServer]    GameLoaderService (JunimoServer.Services.GameLoader.GameLoaderService)

[app         ] [19:58:28 TRACE JunimoServer]    GameManagerService (JunimoServer.Services.GameManager.GameManagerService)

[app         ] [19:58:28 TRACE JunimoServer]    GameTweaker (JunimoServer.Services.GameTweaks.GameTweaker)

[app         ] [19:58:28 TRACE JunimoServer]    HostBot (JunimoServer.Services.HostAutomation.HostBot)

[app         ] [19:58:28 TRACE JunimoServer]    MessageInterceptorsService (JunimoServer.Services.MessageInterceptors.MessageInterceptorsService)

[app         ] [19:58:28 TRACE JunimoServer]    NetworkTweaker (JunimoServer.Services.NetworkTweaks.NetworkTweaker)

[app         ] [19:58:28 TRACE JunimoServer]    PersistentOptions (JunimoServer.Services.PersistentOption.PersistentOptions)

[app         ] [19:58:28 TRACE JunimoServer]    RoleService (JunimoServer.Services.Roles.RoleService)

[app         ] [19:58:28 TRACE JunimoServer]    SecurityService (JunimoServer.Services.CabinManager.SecurityService)

[app         ] [19:58:28 TRACE JunimoServer]    ServerOptimizer (JunimoServer.Services.ServerOptim.ServerOptimizer)

[app         ] [19:58:28 INFO  JunimoServer] Loaded 17 services:

[app         ] [19:58:28 INFO  JunimoServer]    AlwaysOnServer

[app         ] [19:58:28 INFO  JunimoServer]    CabinManagerService

[app         ] [19:58:28 INFO  JunimoServer]    ChatCommandsService

[app         ] [19:58:28 INFO  JunimoServer]    CropSaver

[app         ] [19:58:28 INFO  JunimoServer]    DesyncKicker

[app         ] [19:58:28 INFO  JunimoServer]    FarmhandSenderService

[app         ] [19:58:28 INFO  JunimoServer]    GalaxyAuthService

[app         ] [19:58:28 INFO  JunimoServer]    GameCreatorService

[app         ] [19:58:28 INFO  JunimoServer]    GameLoaderService

[app         ] [19:58:28 INFO  JunimoServer]    GameManagerService

[app         ] [19:58:28 INFO  JunimoServer]    GameTweaker

[app         ] [19:58:28 INFO  JunimoServer]    HostBot

[app         ] [19:58:28 INFO  JunimoServer]    MessageInterceptorsService

[app         ] [19:58:28 INFO  JunimoServer]    NetworkTweaker

[app         ] [19:58:28 INFO  JunimoServer]    RoleService

[app         ] [19:58:28 INFO  JunimoServer]    SecurityService

[app         ] [19:58:28 INFO  JunimoServer]    ServerOptimizer

[app         ] [19:58:28 INFO  JunimoServer] Services loaded and ready!

[app         ] [19:58:28 DEBUG SMAPI] Mods loaded and ready!

[app         ] [19:58:28 TRACE Save Backup] No saves found.

[app         ] �]0;SMAPI 4.1.10 - running Stardew Valley 1.6.15 with 3 mods�[19:58:29 TRACE game] setGameMode( 'titleScreenGameMode (0)' )

[app         ] [19:58:29 INFO  JunimoServer] Replacing 'SteamHelper' with 'GalaxyHelper'

[app         ] [19:58:29 TRACE game] Instance_LoadContent() finished, elapsed = '00:00:01.9909323'

[app         ] [19:58:29 INFO  JunimoServer] Initializing GalaxySDK

[app         ] [19:58:29 INFO  JunimoServer] Signing into GalaxySDK with Steam ticket

[app         ] [19:58:28 INFO  JunimoServer] **********************************

[app         ] [19:58:28 INFO  JunimoServer] *                                *

[app         ] [19:58:28 INFO  JunimoServer] *    JunimoServer 1.2.0          *

[app         ] [19:58:28 INFO  JunimoServer] *                                *

[app         ] [19:58:28 INFO  JunimoServer] *    ✓ Local:   127.0.0.1        *

[app         ] [19:58:28 INFO  JunimoServer] *    ✓ Network: 81.56.12.212     *

[app         ] [19:58:28 INFO  JunimoServer] *                                *

[app         ] [19:58:28 INFO  JunimoServer] **********************************

[app         ] [19:58:28 INFO  JunimoServer] Loading services...

[app         ] [19:58:28 TRACE JunimoServer]    AlwaysOnConfig (JunimoServer.Services.AlwaysOn.AlwaysOnConfig)

[app         ] [19:58:28 TRACE JunimoServer]    AlwaysOnServer (JunimoServer.Services.AlwaysOn.AlwaysOnServer)

[app         ] [19:58:28 TRACE JunimoServer]    CabinManagerService (JunimoServer.Services.CabinManager.CabinManagerService)

[app         ] [19:58:28 TRACE JunimoServer]    ChatCommandsService (JunimoServer.Services.ChatCommands.ChatCommandsService)

[app         ] [19:58:28 TRACE JunimoServer]    CropSaver (JunimoServer.Services.CropSaver.CropSaver)

[app         ] [19:58:28 TRACE JunimoServer]    DesyncKicker (JunimoServer.Services.NetworkTweaks.DesyncKicker)

[app         ] [19:58:28 TRACE JunimoServer]    FarmhandSenderService (JunimoServer.Services.Auth.FarmhandSenderService)

[app         ] [19:58:28 TRACE JunimoServer]    GalaxyAuthService (JunimoServer.Services.Auth.GalaxyAuthService)

[app         ] [19:58:28 TRACE JunimoServer]    GameCreatorService (JunimoServer.Services.GameCreator.GameCreatorService)

[app         ] [19:58:28 TRACE JunimoServer]    GameLoaderService (JunimoServer.Services.GameLoader.GameLoaderService)

[app         ] [19:58:28 TRACE JunimoServer]    GameManagerService (JunimoServer.Services.GameManager.GameManagerService)

[app         ] [19:58:28 TRACE JunimoServer]    GameTweaker (JunimoServer.Services.GameTweaks.GameTweaker)

[app         ] [19:58:28 TRACE JunimoServer]    HostBot (JunimoServer.Services.HostAutomation.HostBot)

[app         ] [19:58:28 TRACE JunimoServer]    MessageInterceptorsService (JunimoServer.Services.MessageInterceptors.MessageInterceptorsService)

[app         ] [19:58:28 TRACE JunimoServer]    NetworkTweaker (JunimoServer.Services.NetworkTweaks.NetworkTweaker)

[app         ] [19:58:28 TRACE JunimoServer]    PersistentOptions (JunimoServer.Services.PersistentOption.PersistentOptions)

[app         ] [19:58:28 TRACE JunimoServer]    RoleService (JunimoServer.Services.Roles.RoleService)

[app         ] [19:58:28 TRACE JunimoServer]    SecurityService (JunimoServer.Services.CabinManager.SecurityService)

[app         ] [19:58:28 TRACE JunimoServer]    ServerOptimizer (JunimoServer.Services.ServerOptim.ServerOptimizer)

[app         ] [19:58:28 INFO  JunimoServer] Loaded 17 services:

[app         ] [19:58:28 INFO  JunimoServer]    AlwaysOnServer

[app         ] [19:58:28 INFO  JunimoServer]    CabinManagerService

[app         ] [19:58:28 INFO  JunimoServer]    ChatCommandsService

[app         ] [19:58:28 INFO  JunimoServer]    CropSaver

[app         ] [19:58:28 INFO  JunimoServer]    DesyncKicker

[app         ] [19:58:28 INFO  JunimoServer]    FarmhandSenderService

[app         ] [19:58:28 INFO  JunimoServer]    GalaxyAuthService

[app         ] [19:58:28 INFO  JunimoServer]    GameCreatorService

[app         ] [19:58:28 INFO  JunimoServer]    GameLoaderService

[app         ] [19:58:28 INFO  JunimoServer]    GameManagerService

[app         ] [19:58:28 INFO  JunimoServer]    GameTweaker

[app         ] [19:58:28 INFO  JunimoServer]    HostBot

[app         ] [19:58:28 INFO  JunimoServer]    MessageInterceptorsService

[app         ] [19:58:28 INFO  JunimoServer]    NetworkTweaker

[app         ] [19:58:28 INFO  JunimoServer]    RoleService

[app         ] [19:58:28 INFO  JunimoServer]    SecurityService

[app         ] [19:58:28 INFO  JunimoServer]    ServerOptimizer

[app         ] [19:58:28 INFO  JunimoServer] Services loaded and ready!

[app         ] [19:58:28 DEBUG SMAPI] Mods loaded and ready!

[app         ] [19:58:28 TRACE Save Backup] No saves found.

[app         ] �]0;SMAPI 4.1.10 - running Stardew Valley 1.6.15 with 3 mods�[19:58:29 TRACE game] setGameMode( 'titleScreenGameMode (0)' )

[app         ] [19:58:29 INFO  JunimoServer] Replacing 'SteamHelper' with 'GalaxyHelper'

[app         ] [19:58:29 TRACE game] Instance_LoadContent() finished, elapsed = '00:00:01.9909323'

[app         ] [19:58:29 INFO  JunimoServer] Initializing GalaxySDK

[app         ] [19:58:29 INFO  JunimoServer] Signing into GalaxySDK with Steam ticket

[app         ] [19:59:29 ERROR JunimoServer] Signing into GalaxySDK failed:

[app         ] [19:59:29 ERROR JunimoServer] System.Exception: Node.js process timed out

[app         ]    at JunimoServer.Services.Auth.SteamAppTicketFetcher.GetTicket() in /src/mod/JunimoServer/Services/AuthService/SteamAppTicketFetcher.cs:line 48

[app         ]    at JunimoServer.Services.Auth.GalaxyAuthService.GetEncryptedAppTicketSteam() in /src/mod/JunimoServer/Services/AuthService/AuthService.cs:line 296

[app         ]    at JunimoServer.Services.Auth.GalaxyAuthService.SignIntoGalaxy() in /src/mod/JunimoServer/Services/AuthService/AuthService.cs:line 303

[app         ]    at JunimoServer.Services.Auth.GalaxyAuthService.GalaxyHelperInitialize_Prefix(GalaxyHelper __instance) in /src/mod/JunimoServer/Services/AuthService/AuthService.cs:line 136

[app         ] [19:59:29 INFO  SMAPI] Type 'help' for help, or 'help <cmd>' for a command's usage

[app         ] [19:59:29 ERROR SMAPI] Critical app domain exception: System.IO.IOException: The process cannot access the file because it is being used by another process.

[app         ]    at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)

[app         ]    at Interop.CheckIo(Int64 result, String path, Boolean isDirectory, Func`2 errorRewriter)

[app         ]    at System.ConsolePal.Read(SafeFileHandle fd, Span`1 buffer)

[app         ]    at System.ConsolePal.UnixConsoleStream.Read(Span`1 buffer)

[app         ]    at System.IO.ConsoleStream.Read(Byte[] buffer, Int32 offset, Int32 count)

[app         ]    at System.IO.StreamReader.ReadBuffer()

[app         ]    at System.IO.StreamReader.ReadLine()

[app         ]    at System.IO.SyncTextReader.ReadLine()

[app         ]    at System.Console.ReadLine()

[app         ]    at StardewModdingAPI.Framework.Logging.LogManager.<>c__DisplayClass11_0.<RunConsoleInputLoop>b__0() in /home/pathoschild/git/SMAPI/src/SMAPI/Framework/Logging/LogManager.cs:line 113

[app         ]    at System.Threading.Thread.StartHelper.Callback(Object state)

[app         ]    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

[app         ] --- End of stack trace from previous location ---

[app         ]    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

[app         ]    at System.Threading.Thread.StartCallback()

[app         ] Unhandled exception. System.IO.IOException: The process cannot access the file because it is being used by another process.

[app         ]    at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)

[app         ]    at Interop.CheckIo(Int64 result, String path, Boolean isDirectory, Func`2 errorRewriter)

[app         ]    at System.ConsolePal.Read(SafeFileHandle fd, Span`1 buffer)

[app         ]    at System.ConsolePal.UnixConsoleStream.Read(Span`1 buffer)

[app         ]    at System.IO.ConsoleStream.Read(Byte[] buffer, Int32 offset, Int32 count)

[app         ]    at System.IO.StreamReader.ReadBuffer()

[app         ]    at System.IO.StreamReader.ReadLine()

[app         ]    at System.IO.SyncTextReader.ReadLine()

[app         ]    at System.Console.ReadLine()

[app         ]    at StardewModdingAPI.Framework.Logging.LogManager.<>c__DisplayClass11_0.<RunConsoleInputLoop>b__0() in /home/pathoschild/git/SMAPI/src/SMAPI/Framework/Logging/LogManager.cs:line 113

[app         ]    at System.Threading.Thread.StartHelper.Callback(Object state)

[app         ]    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

[app         ] --- End of stack trace from previous location ---

[app         ]    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

[app         ]    at System.Threading.Thread.StartCallback()

[app         ] [19:59:29 ERROR JunimoServer] Signing into GalaxySDK failed:

[app         ] [19:59:29 ERROR JunimoServer] System.Exception: Node.js process timed out

[app         ]    at JunimoServer.Services.Auth.SteamAppTicketFetcher.GetTicket() in /src/mod/JunimoServer/Services/AuthService/SteamAppTicketFetcher.cs:line 48

[app         ]    at JunimoServer.Services.Auth.GalaxyAuthService.GetEncryptedAppTicketSteam() in /src/mod/JunimoServer/Services/AuthService/AuthService.cs:line 296

[app         ]    at JunimoServer.Services.Auth.GalaxyAuthService.SignIntoGalaxy() in /src/mod/JunimoServer/Services/AuthService/AuthService.cs:line 303

[app         ]    at JunimoServer.Services.Auth.GalaxyAuthService.GalaxyHelperInitialize_Prefix(GalaxyHelper __instance) in /src/mod/JunimoServer/Services/AuthService/AuthService.cs:line 136

[app         ] [19:59:29 INFO  SMAPI] Type 'help' for help, or 'help <cmd>' for a command's usage

[app         ] [19:59:29 ERROR SMAPI] Critical app domain exception: System.IO.IOException: The process cannot access the file because it is being used by another process.

[app         ]    at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)

[app         ]    at Interop.CheckIo(Int64 result, String path, Boolean isDirectory, Func`2 errorRewriter)

[app         ]    at System.ConsolePal.Read(SafeFileHandle fd, Span`1 buffer)

[app         ]    at System.ConsolePal.UnixConsoleStream.Read(Span`1 buffer)

[app         ]    at System.IO.ConsoleStream.Read(Byte[] buffer, Int32 offset, Int32 count)

[app         ]    at System.IO.StreamReader.ReadBuffer()

[app         ]    at System.IO.StreamReader.ReadLine()

[app         ]    at System.IO.SyncTextReader.ReadLine()

[app         ]    at System.Console.ReadLine()

[app         ]    at StardewModdingAPI.Framework.Logging.LogManager.<>c__DisplayClass11_0.<RunConsoleInputLoop>b__0() in /home/pathoschild/git/SMAPI/src/SMAPI/Framework/Logging/LogManager.cs:line 113

[app         ]    at System.Threading.Thread.StartHelper.Callback(Object state)

[app         ]    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

[app         ] --- End of stack trace from previous location ---

[app         ]    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

[app         ]    at System.Threading.Thread.StartCallback()

[app         ] Unhandled exception. System.IO.IOException: The process cannot access the file because it is being used by another process.

[app         ]    at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)

[app         ]    at Interop.CheckIo(Int64 result, String path, Boolean isDirectory, Func`2 errorRewriter)

[app         ]    at System.ConsolePal.Read(SafeFileHandle fd, Span`1 buffer)

[app         ]    at System.ConsolePal.UnixConsoleStream.Read(Span`1 buffer)

[app         ]    at System.IO.ConsoleStream.Read(Byte[] buffer, Int32 offset, Int32 count)

[app         ]    at System.IO.StreamReader.ReadBuffer()

[app         ]    at System.IO.StreamReader.ReadLine()

[app         ]    at System.IO.SyncTextReader.ReadLine()

[app         ]    at System.Console.ReadLine()

[app         ]    at StardewModdingAPI.Framework.Logging.LogManager.<>c__DisplayClass11_0.<RunConsoleInputLoop>b__0() in /home/pathoschild/git/SMAPI/src/SMAPI/Framework/Logging/LogManager.cs:line 113

[app         ]    at System.Threading.Thread.StartHelper.Callback(Object state)

[app         ]    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

[app         ] --- End of stack trace from previous location ---

[app         ]    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

[app         ]    at System.Threading.Thread.StartCallback()

[app         ] Aborted (core dumped)

[app         ] Aborted (core dumped)

Final checks

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions