License Issues
This guide covers common license-related problems and their solutions.
⚠️ IMPORTANT: The license file must be kept EXACTLY as provided by the arb-assist team. Do NOT rename or modify the license file in any way. The filename format is:
license_username_serverIP_expiration.json
License Validation Errors
Invalid License File
Error:
Error: Invalid license file
Common Causes:
Wrong IP address in license
License file not found
Corrupted license file
Expired license
Solutions:
Verify server IP:
# Check your server's public IP
curl ifconfig.me
# or
curl ipinfo.io/ip
# or
wget -qO- https://api.ipify.org
Check license filename:
# License filename format: license_username_serverIP_expiration.json
# Example: license_myusername_192.168.1.100_1234567890.json
# DO NOT rename the file - keep it exactly as provided
ls -la license_*.json
Verify license location:
# Must be in same directory as arb-assist
# Keep the license file in the same folder without moving it
pwd
ls -la arb-assist license_*.json
License File Not Found
Error:
Error: Cannot find license file
Troubleshooting Steps:
Check file exists:
# Check for license file
find . -name "license_*.json" -type f
# Check current directory
ls -la | grep license
Verify permissions:
# License needs to be readable
chmod 644 license_*.json
# Check ownership
ls -la license_*.json
Correct placement:
# Ensure in same directory
cd /path/to/arb-assist
ls -la
# Should see both arb-assist and license_*.json
IP Address Mismatch
Error:
Error: License not valid for this IP address
Common Scenarios:
Dynamic IP changed:
VPS provider assigned new IP
Server migration
Network configuration change
NAT/Proxy issues:
Behind NAT
Using VPN
Cloud provider networking
Solutions:
Verify current IP:
# External IP (what license should match)
curl ifconfig.me
# Internal IPs (for reference)
ip addr show
ifconfig
Check for IP changes:
# Check your license filename
ls license_*.json
# The IP in the filename should match your current server IP
# Example: license_myusername_192.168.1.100_1234567890.json
Request new license:
Contact support with new IP
Provide server details
Explain IP change reason
License File Management
⚠️ WARNING: Never modify the license file content. Always keep the original file exactly as provided by the arb-assist team.
Backup Procedures
Always backup your license:
Local backup:
# Create backup directory
mkdir -p ~/licenses/backup
cp license_*.json ~/licenses/backup/
# With timestamp
cp license_*.json ~/licenses/backup/license-$(date +%Y%m%d).bak
Secure storage:
# Encrypt before storing
tar -czf - license_*.json | gpg -c > license-backup.tar.gz.gpg
# Decrypt when needed
gpg -d license-backup.tar.gz.gpg | tar -xzf -
Multiple Licenses
Managing licenses for multiple servers:
Naming convention:
licenses/
├── production/
│ └── license_produser_192.168.1.100_1234567890.json
├── staging/
│ └── license_staginguser_192.168.1.101_1234567891.json
└── development/
└── license_devuser_192.168.1.102_1234567892.json
Deployment script:
#!/bin/bash
# deploy-license.sh
SERVER_IP=$(curl -s ifconfig.me)
# Find the license file for this IP
LICENSE_FILE=$(find licenses/production -name "license_*_${SERVER_IP}_*.json" | head -1)
if [ -f "$LICENSE_FILE" ]; then
cp "$LICENSE_FILE" .
echo "License deployed for IP: $SERVER_IP"
else
echo "Error: No license found for IP: $SERVER_IP"
exit 1
fi
License Security
Protect your license files:
File permissions:
# Readable by user only
chmod 600 license_*.json
# Or readable by user and group
chmod 640 license_*.json
Access control:
# Create dedicated user
sudo useradd -r -s /bin/false arb-assist
# Set ownership
sudo chown arb-assist:arb-assist license_*.json
Audit access:
# Monitor license file access
auditctl -w /path/to/license.file -p r -k license_access
# View audit logs
ausearch -k license_access
License Validation Process
How License Validation Works
arb-assist startup:
Looks for license file matching pattern: license_*.json
Extracts IP from filename
Compares with server IP
Validates license content
Validation checks:
File integrity
IP address match
Expiration date (if applicable)
License signature
Debugging License Issues
Enable verbose logging:
Check startup logs:
# Run manually to see all output
./arb-assist
# Look for license-related messages
[INFO] Looking for license file...
[INFO] Found license: license_username_serverIP_expiration.json
[INFO] Validating license...
[INFO] License valid
Common error patterns:
[ERROR] No license file found in current directory
[ERROR] License does not match server IP
[ERROR] License validation failed: Invalid signature
[ERROR] License expired on 2024-01-01
Server Migration
When moving to a new server:
Pre-migration Checklist
Note current IP:
echo "Current IP: $(curl -s ifconfig.me)"
Backup current setup:
tar -czf arb-assist-backup.tar.gz arb-assist config.toml license_*.json
Request new license:
Get new server IP
Contact support
Provide migration timeline
Migration Process
Setup new server:
# Install dependencies
# Copy arb-assist binary
# Copy configuration
Test with new license:
# Don't delete old server yet
# Run test on new server
./arb-assist
# Verify it starts correctly
Cutover:
# Stop old instance
pm2 stop arb-assist
# Start new instance
pm2 start arb-assist
Post-migration
Verify operation:
Check logs
Monitor performance
Ensure bot connects
Cleanup:
Remove old license
Update documentation
Notify team
Cloud Provider Specifics
AWS EC2
Elastic IPs and licensing:
# Check if using Elastic IP
aws ec2 describe-addresses --filters "Name=instance-id,Values=$(ec2-metadata --instance-id)"
# Note: Elastic IPs persist across restarts
Google Cloud
External IPs:
# Get external IP
gcloud compute instances describe INSTANCE_NAME --format='get(networkInterfaces[0].accessConfigs[0].natIP)'
DigitalOcean
Floating IPs:
# Check droplet IP
doctl compute droplet get DROPLET_ID --format PublicIPv4
License Troubleshooting Checklist
When experiencing license issues:
Getting Support
When contacting support:
Provide information:
Current server IP
License file exists (license_username_serverIP_expiration.json)
Error messages
Server provider
Migration details (if applicable)
Include diagnostics:
# Create diagnostic report
echo "=== Diagnostic Report ===" > diagnostic.txt
echo "Date: $(date)" >> diagnostic.txt
echo "IP: $(curl -s ifconfig.me)" >> diagnostic.txt
echo "License file:" >> diagnostic.txt
ls -la license_*.json >> diagnostic.txt
echo "Directory contents:" >> diagnostic.txt
ls -la >> diagnostic.txt
echo "Error output:" >> diagnostic.txt
./arb-assist 2>&1 | head -20 >> diagnostic.txt
Support channels:
Discord: Join Server
Include diagnostic report
Be patient for response
Best Practices
Never modify license files: Keep them exactly as provided by arb-assist team
Always backup licenses: Before any changes
Document IP addresses: Keep record of licensed IPs
Plan migrations: Request new licenses in advance
Monitor expiration: If licenses have expiry dates
Secure storage: Protect license files
Test thoroughly: Before production deployment
Last updated