Server Won't Connect: Diagnosing Connection Issues
Step-by-step guide to diagnose why FICSIT.monitor can't connect to your Satisfactory server. Check firewall, ports, TLS, FRM availability, and common fixes.
Overview
This guide provides a systematic diagnostic procedure for connection failures between FICSIT.monitor and your Satisfactory server. Work through the steps in order to isolate the root cause.
Quick Diagnostic Flowchart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Is the server container running?
└── No → docker start satisfactory-server, wait 2 min
└── Yes ↓
Does HealthCheck respond?
└── No → Port 7777 is blocked or server crashed → Step 1
└── Yes ↓
Does PasswordLogin succeed?
└── No (wrong_password) → Admin password is wrong → Step 2
└── Yes ↓
Does FRM respond?
└── No → Port 8080 blocked or FRM not installed → Step 3
└── Yes ↓
All checks pass → contact support
Step 1: Verify Server is Running and Port 7777 is Open
Check Docker container
1
docker ps | grep satisfactory
Expected: shows Up X hours or Up X minutes.
If not running:
1
2
3
docker start satisfactory-server
docker logs -f satisfactory-server | grep "InProgress"
# Wait for "LogGameState: Match State Changed from WaitingToStart to InProgress"
Check port 7777 is listening
On the server:
1
ss -tulnp | grep 7777
Expected output:
1
2
tcp LISTEN 0 100 0.0.0.0:7777 0.0.0.0:* users:(("FactoryServer",pid=xxx,fd=x))
udp UNCONN 0 0 0.0.0.0:7777 0.0.0.0:* users:(("FactoryServer",pid=xxx,fd=x))
If nothing appears, the game server process is not running. Check Docker logs for errors.
Check UFW allows port 7777
1
sudo ufw status | grep 7777
Expected:
1
2
7777/tcp ALLOW Anywhere
7777/udp ALLOW Anywhere
If missing:
1
2
3
sudo ufw allow 7777/tcp
sudo ufw allow 7777/udp
sudo ufw reload
Test the vanilla API (from an external machine)
Run this from your local PC (not from the server itself):
1
2
3
curl -k -X POST https://YOUR_PUBLIC_IP:7777/api/v1 \
-H "Content-Type: application/json" \
-d '{"function":"HealthCheck","data":{}}'
- ✅
{"data":{"health":"healthy"}}— Port 7777 is accessible externally. Proceed to Step 2. - ❌
Connection refused— The game server is not running or port 7777 is blocked externally. - ❌
Connection timed out— Port 7777 is blocked by a firewall (cloud security group or VPS provider firewall). - ❌
SSL: certificate verify failed— Normal. Add-kflag to ignore the self-signed certificate.
Step 2: Verify the Admin Password
1
2
3
4
5
6
7
8
9
curl -k -X POST https://YOUR_PUBLIC_IP:7777/api/v1 \
-H "Content-Type: application/json" \
-d '{
"function": "PasswordLogin",
"data": {
"minimumPrivilegeLevel": "Administrator",
"password": "YourAdminPassword"
}
}'
- ✅
{"data":{"authenticationToken":"..."}}— Password is correct. Proceed to Step 3. - ❌
{"errorCode":"wrong_password"}— Incorrect password.
Fix for wrong password:
- Connect from game client
- Go to Escape → Server Settings → Administration
- Reset the admin password
- Update the password in FICSIT.monitor
If you’ve forgotten the admin password and cannot connect from the game client:
- Stop the container:
docker stop satisfactory-server - Open
./data/config/GameUserSettings.ini - Find
AdminPassword=and reset it - Start the container:
docker start satisfactory-server
Step 3: Verify FRM is Running
1
curl http://YOUR_PUBLIC_IP:8080/getPower
- ✅ JSON array (may be empty
[]) — FRM is running. If[], no session is active yet (start a game). - ❌
Connection refused— FRM is not running or port 8080 is blocked. - ❌
Connection timed out— Port 8080 is blocked by the cloud firewall.
Fix for FRM not accessible:
- Open port 8080 in UFW:
1 2 3
sudo ufw allow 8080/tcp sudo ufw allow 8081/tcp sudo ufw reload
If using a cloud provider, open ports 8080 and 8081 TCP in the cloud firewall / security group.
- Verify FRM is installed. From outside the game, you can check via the vanilla API:
1 2 3 4
curl -k -X POST https://YOUR_PUBLIC_IP:7777/api/v1 \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_TOKEN" \ -d '{"function":"frm","endpoint":"getPower"}'
If FRM is installed but port 8080 is blocked, this alternative endpoint still works.
Step 4: Cloud Provider Firewall Checks
If UFW is configured correctly but external connections still fail, your cloud provider may have a separate firewall that overrides UFW.
Hetzner Cloud:
- Go to Cloud Console → Firewalls
- Verify your server’s firewall includes inbound rules for TCP 7777, UDP 7777, TCP 8888, TCP 8080, TCP 8081
DigitalOcean:
- Go to Networking → Firewalls
- Verify the Droplet’s firewall allows the required ports
AWS:
- Go to EC2 → Security Groups
- Verify inbound rules include TCP 7777, UDP 7777, TCP 8888, TCP 8080, TCP 8081 from
0.0.0.0/0
Step 5: Verify the IP is Public
FICSIT.monitor’s servers connect to your server from the internet. Common mistake: using a private or local IP.
1
2
3
4
# Check your server's public IP
curl ifconfig.me
# or
curl api.ipify.org
The public IP shown here is what you should enter in FICSIT.monitor — not localhost, not 192.168.x.x, not 10.x.x.x.
Still Not Working?
Gather this diagnostic information before seeking support:
- Output of
docker ps | grep satisfactory - Output of
curl -k -X POST https://YOUR_IP:7777/api/v1 -H "Content-Type: application/json" -d '{"function":"HealthCheck","data":{}}' - Output of
curl http://YOUR_IP:8080/getPower - Output of
sudo ufw status - The exact error code shown in FICSIT.monitor (422, 502, or 500)