Skip to main content

Connection Issues

Client Can’t Connect to Server

Symptoms:
  • Connection refused
  • Connection timeout
  • Failed to connect
1

Verify Server is Running

If not listening:
2

Check Firewall

Third-party firewalls: Add exception for undying-terminal-server.exe on port 2022
3

Test Network Connectivity

If fails:
  • Check router port forwarding
  • Check network path (VPN, proxy)
  • Try localhost first (127.0.0.1)
4

Verify Credentials

Client ID and passkey must match exactly:
Common mistakes:
  • Wrong client ID (typo)
  • Wrong passkey (case-sensitive hex)
  • Using old credentials (terminal restarted)
5

Check Encryption Mismatch

Server and client must agree on encryption:
Still stuck? Enable debug logging:
Look for specific error messages in output.

Authentication Failed - Invalid Passkey

Error: ConnectResponse(status=INVALID_KEY) Cause: Passkey mismatch between client and server Solutions:
Get passkey from terminal output:
Use exact hex string in client:
If terminal was restarted, passkey changed:
If server uses encryption, ensure it’s configured:
Mismatch will cause authentication to fail silently.

Session Won’t Reconnect After Disconnect

Symptoms:
  • Client exits instead of reconnecting
  • Session terminated message
  • No automatic retry
Causes & Solutions: Debug:

Performance Issues

High Latency / Slow Response

Symptoms:
  • Keystrokes appear after delay
  • Slow command output
  • Laggy terminal
1

Measure Network Latency

Expected:
  • LAN: 1-5ms
  • Internet: 20-100ms
  • International: 100-300ms
If high:
  • Check network path (tracert)
  • Check bandwidth (speedtest)
  • Consider closer server
2

Check Recovery Buffer

After reconnect, large buffer replay causes delay:
If large (>10MB):
  • Wait for catchup to complete
  • To reduce keepalive frequency: requires a recompile
3

Check Server Load

If high:
  • Reduce concurrent sessions
  • Add more RAM/CPU
  • Check for runaway terminal processes
4

Disable Encryption (Test)

Temporarily disable encryption to isolate issue:
Restart server and test. If faster, encryption overhead is the issue (should be <1ms though).

Memory Usage Growing

Symptoms:
  • Server memory increases over time
  • Eventually crashes or slows down
Causes:
  1. Recovery Buffer Growth (expected)
    • Each session: up to 128MB (64MB × 2 directions)
    • 10 sessions: up to 1.28GB
    • Normal behavior
  2. Memory Leak (bug)
    • Stale sessions not cleaned up
    • Known issue: Server doesn’t clean up on pipe disconnect
Solutions:

Terminal Issues

Shell Exits Unexpectedly

Symptoms:
  • Terminal process terminates
  • Session ends
  • Must restart terminal
Common Causes: Solution: Restart terminal

Garbled Output / Encoding Issues

Symptoms:
  • Special characters appear as ? or boxes
  • Colors broken
  • Line wrapping wrong
Solutions:

Colors Not Working

Cause: ConPTY virtual terminal sequences not enabled Solution:

Configuration Issues

Config File Not Loading

Symptoms:
  • Server uses default values
  • Changes in ut.cfg ignored
Checklist:
  1. Correct location:
  2. File permissions:
  3. File format:
  4. Server restart:

Port Already in Use

Error: bind: address already in use
1

Find Process Using Port

2

Choose Solution

Option A: Kill the process
Option B: Change port
Option C: Command-line override

Named Pipe Errors

Error: Failed to connect to named pipe Causes:
  1. Server not running:
  2. Wrong pipe name:
  3. Permission denied:
    • Run as same user as server
    • Or grant permissions (advanced)

Tunnel / Port Forwarding Issues

Tunnel Not Working

Symptoms:
  • Connection to forwarded port fails
  • Connection refused on tunnel
Checklist:
  1. Service running on remote? netstat -ano | findstr :9090 (on server)
  2. Firewall blocking? Check server firewall rules
  3. Correct destination? Try telnet remote-service 9090 from server
  4. Tunnel established? Check client output for tunnel messages
Checklist:
  1. Server listening? netstat -ano | findstr :3000 (on server)
  2. Local service running? netstat -ano | findstr :8000 (on client)
  3. Client connected? Session must be active
  4. Firewall on server? Check inbound rules for port 3000
Forward tunnel: Local port already used
Reverse tunnel: Server port already used

Tunnel Breaks After Reconnect

Expected Behavior: Active TCP connections through tunnels do not survive client reconnects. Why: Both ends of TCP connection must be preserved. When client disconnects:
  • Client-side connections drop
  • Server-side connections drop
  • Applications must reconnect
Workaround: Design applications with reconnect logic What DOES survive: Tunnel infrastructure (listeners restart automatically)

Windows-Specific Issues

ConPTY Errors

Error: CreatePseudoConsole failed Cause: Windows version < Build 17763 Solution: Update Windows

Service Won’t Start

Error: The service did not respond to the start or control request in a timely fashion Solutions:
  1. Check service config:
  2. Check binary path:
  3. Check permissions:
    • Service runs as SYSTEM by default
    • Config file must be readable by SYSTEM
  4. Check logs:

DLL Missing Errors

Error: The code execution cannot proceed because libsodium.dll was not found Cause: Required DLLs not in PATH or binary directory Solution:
Required DLLs:
  • libsodium.dll
  • libcrypto-*.dll (OpenSSL)
  • libssl-*.dll (OpenSSL)

Getting More Help

Enable Verbose Logging

Collect Diagnostic Information

Before reporting issues:

Report a Bug

Include in your report:
  1. Steps to reproduce
  2. Expected behavior
  3. Actual behavior
  4. Diagnostic information (above)
  5. Error messages (full output)
GitHub Issues: https://github.com/Microck/UndyingTerminal/issues