Troubleshooting
This guide covers common TractStack issues and their solutions, organized by symptom and system component.
Service Issues
Section titled “Service Issues”TractStack Won’t Start
Section titled “TractStack Won’t Start”Symptoms:
- Services fail to start after installation
- systemd service shows failed status
- PM2 processes crash immediately
Diagnosis:
sudo systemctl status tractstack-gosudo journalctl -u tractstack-go --no-pager -n 50sudo -u t8k pm2 logs astro-main --err
Common causes and solutions:
Port conflicts:
# Check what's using the portsudo netstat -tlnp | grep :10000sudo lsof -i :10000
# Kill conflicting processsudo kill -9 <PID>
Database connection errors:
# Check database file exists and permissionsls -la /home/t8k/t8k-go-server/db/default/tractstack.dbsudo chown t8k:t8k /home/t8k/t8k-go-server/db/default/tractstack.db
Missing configuration:
# Verify configuration file existscat /home/t8k/t8k-go-server/config/default/env.json
Services Keep Crashing
Section titled “Services Keep Crashing”Symptoms:
- Services start but crash shortly after
- Repeated restart attempts in logs
- High memory or CPU usage before crash
Diagnosis:
sudo journalctl -u tractstack-go -fsudo -u t8k pm2 monit
Solutions:
Memory issues:
# Check available memoryfree -h# Monitor process memory usagetop -u t8k
Configuration errors:
# Validate JSON configurationcat /home/t8k/t8k-go-server/config/default/env.json | jq .
Database Issues
Section titled “Database Issues”Database Locked Errors
Section titled “Database Locked Errors”Symptoms:
- “Database is locked” errors in logs
- Slow response times
- Failed write operations
Diagnosis:
# Check for processes using databaselsof /home/t8k/t8k-go-server/db/default/tractstack.db
# Check database integritysqlite3 /home/t8k/t8k-go-server/db/default/tractstack.db "PRAGMA integrity_check;"
Solutions:
Kill blocking processes:
sudo systemctl stop tractstack-go# Wait for processes to close database connectionssudo systemctl start tractstack-go
Database corruption recovery:
# Stop servicessudo systemctl stop tractstack-go
# Backup current databasesudo -u t8k cp /home/t8k/t8k-go-server/db/default/tractstack.db \ /home/t8k/t8k-go-server/db/default/tractstack.db.backup
# Check and repair databasesqlite3 /home/t8k/t8k-go-server/db/default/tractstack.db "VACUUM;"
SSL Certificate Issues
Section titled “SSL Certificate Issues”Certificate Not Found
Section titled “Certificate Not Found”Symptoms:
- nginx SSL errors
- HTTPS connections fail
- Certificate file missing
Diagnosis:
sudo ls -la /home/t8k/etc/letsencrypt/live/yourdomain.com/sudo nginx -t
Solutions:
Request new certificate:
sudo -u t8k bash -c "source /home/t8k/certbot_venv/bin/activate && \ certbot certonly --manual --preferred-challenges dns \ --config-dir /home/t8k/etc/letsencrypt \ --work-dir /home/t8k/lib/letsencrypt \ --logs-dir /home/t8k/log/letsencrypt \ --agree-tos --email admin@yourdomain.com \ -d yourdomain.com -d *.yourdomain.com"
Certificate Expired
Section titled “Certificate Expired”Symptoms:
- Browser security warnings
- SSL certificate expired errors
Diagnosis:
echo | openssl s_client -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates
Solutions:
Force certificate renewal:
sudo -u t8k /home/t8k/certbot_venv/bin/certbot renew --force-renewalsudo systemctl reload nginx
Network and Connectivity Issues
Section titled “Network and Connectivity Issues”Site Not Accessible
Section titled “Site Not Accessible”Symptoms:
- Website doesn’t load
- Connection timeouts
- DNS resolution failures
Diagnosis:
# Test local connectivitycurl -I http://localhost:20000curl -I http://localhost:10000
# Test external connectivitycurl -I https://yourdomain.com
# Check DNS resolutiondig yourdomain.com
Solutions:
nginx not running:
sudo systemctl status nginxsudo systemctl start nginx
DNS issues:
# Check DNS recordsdig yourdomain.com Adig *.yourdomain.com A # For multi-tenant
Firewall blocking:
sudo ufw statussudo ufw allow 80/tcpsudo ufw allow 443/tcp
Performance Issues
Section titled “Performance Issues”Slow Response Times
Section titled “Slow Response Times”Symptoms:
- Pages load slowly
- High CPU or memory usage
- Database query timeouts
Diagnosis:
# Check system resourcestophtopdf -h
# Monitor database performancesqlite3 /home/t8k/t8k-go-server/db/default/tractstack.db "ANALYZE;"
Solutions:
Database optimization:
sqlite3 /home/t8k/t8k-go-server/db/default/tractstack.db "VACUUM;"sqlite3 /home/t8k/t8k-go-server/db/default/tractstack.db "PRAGMA optimize;"
Clear caches:
sudo systemctl restart tractstack-gosudo -u t8k pm2 restart all
Multi-Tenant Issues
Section titled “Multi-Tenant Issues”Tenant Registration Fails
Section titled “Tenant Registration Fails”Symptoms:
- Registration page errors
- Subdomain not working
- Tenant creation failures
Diagnosis:
# Check multi-tenant configurationgrep ENABLE_MULTI_TENANT /home/t8k/src/tractstack-go/.envgrep PUBLIC_ENABLE_MULTI_TENANT /home/t8k/src/my-tractstack/.env
# Test subdomain DNSdig tenant.yourdomain.com
Solutions:
DNS configuration:
# Verify wildcard DNS record existsdig *.yourdomain.com A
SSL certificate for subdomains:
# Ensure wildcard certificate covers subdomainssudo -u t8k /home/t8k/certbot_venv/bin/certbot certificates
Build System Issues
Section titled “Build System Issues”Build Failures
Section titled “Build Failures”Symptoms:
- Build process fails
- Services don’t restart after build
- Old code still running
Diagnosis:
sudo journalctl -u t8k-build-watcher.service -fls -la /home/t8k/state/
Solutions:
Manual build:
sudo -u t8k /home/t8k/scripts/t8k-concierge.sh
Git repository issues:
cd /home/t8k/src/tractstack-gogit statusgit pull origin main
cd /home/t8k/src/my-tractstackgit statusgit pull origin main
Recovery Procedures
Section titled “Recovery Procedures”Emergency Service Restart
Section titled “Emergency Service Restart”Complete service restart:
# Stop all servicessudo systemctl stop tractstack-gosudo -u t8k pm2 stop all
# Wait for clean shutdownsleep 5
# Start servicessudo systemctl start tractstack-gosudo -u t8k pm2 start all
# Verify services are runningsudo systemctl status tractstack-gosudo -u t8k pm2 status
Reset to Clean State
Section titled “Reset to Clean State”Reset PM2 processes:
sudo -u t8k pm2 killsudo -u t8k pm2 resurrect
Reset systemd services:
sudo systemctl daemon-reloadsudo systemctl reset-failed tractstack-gosudo systemctl start tractstack-go
Getting Help
Section titled “Getting Help”Log Collection
Section titled “Log Collection”Gather diagnostic information:
# Create diagnostic reportecho "=== TractStack Diagnostic Report ===" > diagnostic.txtecho "Date: $(date)" >> diagnostic.txtecho "" >> diagnostic.txt
echo "=== Service Status ===" >> diagnostic.txtsudo systemctl status tractstack-go >> diagnostic.txtsudo -u t8k pm2 status >> diagnostic.txt
echo "=== Recent Logs ===" >> diagnostic.txtsudo journalctl -u tractstack-go --no-pager -n 50 >> diagnostic.txt
echo "=== System Resources ===" >> diagnostic.txtdf -h >> diagnostic.txtfree -h >> diagnostic.txt
Community Support
Section titled “Community Support”When seeking help:
- Include TractStack version information
- Provide relevant log excerpts
- Describe steps to reproduce the issue
- Include system information (OS, architecture)
Resources:
- GitHub Issues: Report bugs and feature requests
- Documentation: Check latest documentation for updates
- Community: Connect with other TractStack users
Most issues can be resolved by checking logs, verifying configuration, and restarting services. When in doubt, collect diagnostic information before seeking help.