🧰 Troubleshooting - zhliau/fika-headless-docker GitHub Wiki
Here are some commonly encountered scenarios and how to solve them.
- Error loading SPTCustomPlugin
- Cannot connect to dedicated client raid
- Container immediately exits
- Stuck right after BepInEx preloader finished
- Crash with assertion in virtual.c
- Container stalls at wine: RLIMIT_NICE <= 20
- My container memory usage keeps going up until I run out of memory
- Server output shows
cannot read properties of undefined (reading info)
- I'm using esync but my client crashes
Error loading SPTCustomPlugin
dedi | [Info :RequestHandler] [REQUEST]: /singleplayer/bosstypes
dedi | [Error :SPT.Custom] A PATCH IN SPTCustomPlugin FAILED. SUBSEQUENT PATCHES HAVE NOT LOADED
dedi | [Error :SPT.Custom] SPTCustomPlugin: System.TypeInitializationException: The type initializer for 'SPT.Custom.Patches.CustomAiPatch' threw an exception. ---> System.AggregateException: One or more errors occurred. (Array cannot be null.
dedi | Parameter name: bytes) ---> System.ArgumentNullException: Array cannot be null.
If you see something like the above error, this means the first request the client attempted to make to the SPT Server failed. This is most commonly due to a wrongly configured SERVER_URL
value. This value needs to be set to an IP or hostname that can be reached from within the container.
- Do not set
SERVER_URL
to 127.0.0.1/localhost. The loopback is not what you'd expect in the context of the container. - Similarly, setting this to your server's local IP may not work, since the container may not have access to the docker host's network stack.
- If you are running the SPT server from the same docker-compose file, set
SERVER_URL
to the exact name of the SPT server service. - If your SPT server is running on a different machine than the headless container, you can try setting this value to the public facing IP/hostname of the server host
Unable to connect to server.
Cannot connect to dedicated client raid. When hosting, players receive a popup saying This indicates a connectivity issue. Make sure you have everything completed in this checklist
- The container is running with a Docker port forward rule forwarding 25565 UDP to the container.
- If you are connecting via port forwarding, port 25565 is forwarded from your router to the machine hosting this docker container.
- If you are using a VPN, the dedicated client's
com.fika.core.cfg
has the VPN IP of the docker host machine set as theForce IP
value.
Container immediately exits
Crashing with stacktrace in container, permissions errors, wine unable to find EscapeFromTarkov.exe, or wine throwing a page fault on read access to 0000000000000000 exception?
- If you are using Corter-ModSync to keep plugin files up to date, make sure you set the
USE_MODSYNC
env var totrue
or the plugin updater will not be able to run properly and the container will keep exiting! - Make sure you do not have an invalid plugin in the Dedicated client's plugins folder. You can see the list of invalid plugins here
- Double check that you have both the
Fika.Core.dll
andFika.Dedicated.dll
plugins in the client'sBepInEx/plugins
folder! The game will crash in the container if you don't have both plugins! - Check your docker logs output. Maybe you haven't mounted your FIKA client directory properly? Verify the contents of the Fika Client directory to make sure all expected files are there. You must mount a working copy of the Fika client to
/opt/tarkov
. - Double check that your file permissions for the Fika client directory and its contents are correct. The container runs as the user
root
, so it should be able to read any mounted files as long as you don't have anything unusual with your file permissions. - If you have SELinux enabled on the host, the container may not be able to read the mounted directories unless you provide the :z option to re-label the mount with the correct SELinux context. Be VERY careful with this option! I will not be responsible for anything that happens if you choose to do this.
- Make sure your Fika client files have the winhttp.dll in the root folder. This is required for any plugins (even SPT) to run.
Stuck right after BepInEx preloader finished
fika_dedi | [Message: BepInEx] Preloader finished
fika_dedi | (Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39)
fika_dedi |
fika_dedi | Fallback handler could not load library Z:/opt/tarkov/EscapeFromTarkov_Data/Mono/data-00007D86E24EA790.dll
- Double check your server is reachable at whatever you set
SERVER_URL
to. If the client can't reach the backend, it tends to hang here. - If you are using ProxMox to spin up a VM to run this image, make sure nested virtualization is enabled.
- Double check that you have both the
Fika.Core.dll
andFika.Dedicated.dll
plugins in the client'sBepInEx/plugins
folder! The game will crash in the container if you don't have both plugins! - Ensure your server contains a profile json file with filename matching the
PROFILE_ID
you provided to the container
Crash with assertion in virtual.c
../src-wine/dlls/ntdll/unix/virtual.c:1907: create_view: Assertion `!((UINT_PTR)base & page_mask)' failed.
If the dedicated client container crashes with this error, this usually means your max memory map count is too low.
-
Set the value higher and then try restarting the dedicated client
sudo sysctl -w vm.max_map_count=2147483642
Make this persist between reboots by creating a file
/etc/sysctl.d/80-vm-mmax.conf
with the following contents:vm.max_map_count = 2147483642
Container stalls at wine: RLIMIT_NICE is <=20
This happens sometimes on first boot or when the container is force-recreated e.g. by docker-compose up --force-recreate
. This is because wine needs to run wineboot on container initialization.
- Just wait. after roughly 60s, the client will resume starting normally
My container memory usage keeps going up until I run out of memory
- Try setting the
AUTO_RESTART_ON_RAID_END
env var totrue
, to have the client restart itself after each raid is completed and all players have extracted. This should effectively reset container memory usage back to the ~3Gb required on first boot, after each raid. - EFT is extremely memory hungry, if you are running out of memory while in raid, try to remove some mods that may be memory intensive to see if memory usage improves.
- There may be no better solution than to simply add more RAM to the docker host.
Cannot read properties of undefined (reading 'info')
Server output shows - This usually means your dedicated profile didn't generate properly. You can try deleting the dedicated profile and restarting the server to regenerate a new profile
- MAKE ABSOLUTELY SURE IT'S THE DEDICATED PROFILE. Its username will start with
dedicated_
with passwordfika-dedicated
- MAKE ABSOLUTELY SURE IT'S THE DEDICATED PROFILE. Its username will start with
I'm using ESYNC, but my client crashes
- Increase your system file descriptor limit. See this doc for more information.
After loading plugins, SPT.Custom throws an error
The type initializer for 'SPT.Custom.Patches.EasyAssetsPatch' threw an exception
- Try running the client and getting to the main menu before using/copying the EFT client files to the docker host. This usually means the client has not been run before.