Skip to content

Common Issues

This guide covers the most frequently encountered issues when deploying and managing Waveshift with wavectl.

Deployment Issues

AWS Permission Errors

Problem: Access denied or UnauthorizedOperation errors during deployment

Symptoms:

Error: failed to create VPC: UnauthorizedOperation: You are not authorized to perform this operation
Error: failed to create IAM role: AccessDenied: User is not authorized to perform: iam:CreateRole

Solutions:

  1. Verify AWS Credentials:

    aws sts get-caller-identity
    

  2. Check IAM Permissions: Ensure your AWS user/role has the required permissions:

  3. EC2 Full Access
  4. IAM Full Access
  5. Route53 Full Access
  6. S3 Full Access
  7. SSM Full Access
  8. VPC Full Access

  9. Use Administrator Access (for initial setup):

    aws iam attach-user-policy --user-name your-username --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
    

Docker Image Access Issues

Problem: Cannot access Docker images during deployment

Symptoms:

Error: failed to start containers: access denied for Docker registry

Solutions:

  1. Verify AWS Account Authorisation:

    aws sts get-caller-identity
    
    Ensure your AWS account has been pre-authorized by Blackfire Technology.

  2. Check Identity Provider: Verify you're using the correct identity provider string provided by Blackfire Technology.

  3. Contact Support: If issues persist, contact Blackfire Technology support with your AWS account ID.

Instance Launch Failures

Problem: EC2 instances fail to launch

Symptoms:

Error: failed to launch instance: InsufficientInstanceCapacity
Error: failed to launch instance: InstanceLimitExceeded

Solutions:

  1. Check Service Limits:

    aws service-quotas get-service-quota --service-code ec2 --quota-code L-1216C47A
    

  2. Try Different Instance Types:

    wavectl deploy --kasm-instance-type m6a.xlarge --region us-east-1 --identity-provider your-provider
    

  3. Use Different Availability Zone:

    aws ec2 describe-availability-zones --region us-east-1
    

Health Check Issues

Services Not Ready

Problem: Services are not ready after deployment

Symptoms: - wavectl sites command fails or times out - Cannot access Waveshift console - Services starting up

Solutions:

  1. Wait for Services to Start:
  2. Infrastructure takes 10-15 minutes after wavectl deploy
  3. The wavectl sites --add command includes automatic health checking
  4. Wait the full time before attempting site registration

  5. Check Instance Status:

    aws ec2 describe-instances --instance-ids $(cat wavectl.json | jq -r '.waveshift_instance_id')
    

  6. Verify Security Groups:

    aws ec2 describe-security-groups --group-ids $(cat wavectl.json | jq -r '.private_sg_id')
    

DNS Resolution Issues

Problem: Cannot resolve waveshift.internal or kasm.internal

Symptoms:

Error: failed to connect to waveshift.internal: no such host

Solutions:

  1. Check Route53 Private Zone:

    aws route53 list-hosted-zones
    aws route53 list-resource-record-sets --hosted-zone-id $(cat wavectl.json | jq -r '.hosted_zone_id')
    

  2. Verify VPC DNS Settings:

    aws ec2 describe-vpcs --vpc-ids $(cat wavectl.json | jq -r '.vpc_id')
    

  3. Test from Within VPC:

    # SSH to instance and test DNS
    nslookup waveshift.internal
    

Site Management Issues

Site Registration Failures

Problem: wavectl sites --add N fails to register sites

Symptoms:

Error: API authentication failed
Error: Cannot connect to orchestration service

Solutions:

  1. Verify Waveshift Connectivity:

    wavectl proxy
    # Then test: curl http://localhost:8080/health
    

  2. Check API Key:

    cat wavectl.json | jq '.api_key'
    

  3. Test API Connectivity:

    curl -k https://waveshift.internal/health
    

WireGuard Key Generation Issues

Problem: Sites created without proper WireGuard keys

Symptoms:

Error: failed to generate WireGuard keys
Site created but missing wg_private_key

Solutions:

  1. Check System Entropy:

    cat /proc/sys/kernel/random/entropy_avail
    

  2. Install WireGuard Tools:

    # Ubuntu/Debian
    sudo apt install wireguard-tools
    
    # macOS
    brew install wireguard-tools
    

  3. Retry Site Creation:

    wavectl sites --add 1
    

Router Configuration Issues

SSH Connection Failures

Problem: Cannot connect to GL.iNet router via SSH

Symptoms:

Error: failed to connect to router: connection refused
Error: SSH authentication failed

Solutions:

  1. Verify Router IP:

    ping 10.34.0.1
    nmap -p 22 10.34.0.1
    

  2. Check SSH Service:

    # Connect manually to test
    ssh root@10.34.0.1
    

  3. Try Different Credentials:

    # Use custom SSH credentials
    wavectl configure-hub --site 0 --ssh-user root --ssh-password your-custom-password
    

Router Configuration Failures

Problem: Router configuration script fails

Symptoms:

Error: failed to update DHCP configuration
Error: WireGuard setup failed
Error: device scanner installation failed

Solutions:

  1. Check Router Model Compatibility:

    ssh root@10.34.0.1 "cat /etc/openwrt_release"
    

  2. Verify WireGuard Support:

    ssh root@10.34.0.1 "opkg list-installed | grep wireguard"
    

  3. Manual Configuration Check:

    ssh root@10.34.0.1 "uci show network"
    ssh root@10.34.0.1 "uci show dhcp"
    

Router Reboot Issues

Problem: Router doesn't come back online after configuration

Symptoms:

Router configured but not responding after reboot
Cannot ping router after configuration

Solutions:

  1. Wait for Reboot Completion:

    # Wait 2-3 minutes for full reboot
    sleep 180
    ping 10.34.0.1
    

  2. Check Network Configuration:

    # Router may have changed IP after configuration
    nmap -sn 10.8.0.0/24
    

  3. Physical Reset if Needed:

  4. Press and hold reset button for 10 seconds
  5. Reconfigure with original settings

Network Connectivity Issues

VPN Connection Problems

Problem: Cannot establish WireGuard VPN connection

Symptoms:

WireGuard tunnel not connecting
Cannot reach internal services through VPN

Solutions:

  1. Check WireGuard Configuration:

    wg show
    

  2. Verify Endpoint Connectivity:

    # Test UDP connectivity to WireGuard port
    nc -u waveshift-public-ip 51820
    

  3. Check Firewall Rules:

    # Ensure UDP 51820 is allowed
    sudo ufw status
    

Internal Service Access Issues

Problem: Cannot access Waveshift or Kasm services

Symptoms:

Connection timeout to waveshift.internal
Cannot load Kasm interface

Solutions:

  1. Verify VPN Connection:

    ping 10.0.1.10  # Waveshift internal IP
    

  2. Test Direct IP Access:

    curl -k https://$(cat wavectl.json | jq -r '.waveshift_private_ip')
    

Configuration File Issues

Corrupted Configuration

Problem: wavectl.json file is corrupted or missing data

Symptoms:

Error: failed to parse config
Error: required field missing

Solutions:

  1. Validate JSON Syntax:

    cat wavectl.json | jq '.'
    

  2. Check RequiredFields:

    cat wavectl.json | jq 'keys'
    

  3. Restore from Backup:

    cp wavectl.json.backup wavectl.json
    

Multiple Configuration Files

Problem: Managing multiple environments with different configs

Solution:

Environment-Specific Deployments: - Use separate directories for each environment - Each directory has its own wavectl.json

# Production directory
cd ~/waveshift-production
wavectl sites --add 5

# Staging directory
cd ~/waveshift-staging
wavectl sites --add 2

Performance Issues

Slow Deployment Times

Problem: Deployment takes longer than expected

Solutions:

  1. Use Larger Instance Types:

    wavectl deploy --kasm-instance-type m6a.4xlarge --region us-east-1 --identity-provider your-provider
    

  2. Choose Optimal Region:

    # Use region closest to your location
    wavectl deploy --region us-west-2 --identity-provider your-provider
    

  3. Monitor AWS Service Health:

  4. Check AWS Service Health Dashboard
  5. Try different availability zones

Slow Service Startup

Problem: Services take too long to become healthy

Solutions:

  1. Increase Health Check Timeout:

    wavectl health-check --wait --timeout 900
    

  2. Check Instance Resources:

    # Monitor CPU and memory usage
    aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilisation
    

Hardware Setup Issues

Nodes Not Appearing

Problem: Nodes don't show up in Unassigned Nodes list

Solutions:

  1. Check Power:
  2. Verify node power LED is on
  3. Try different power adapter (minimum 3A USB-C required)

  4. Check Cabling:

    # Node must have TWO cables:
    # - LAN2 to Control Hub (management)
    # - WAN to Bearer Router (internet)
    

  5. Check Control Hub Connectivity:

  6. Verify Control Hub can reach internet
  7. From tablet browser: http://10.1.0.1 should load

  8. Wait for Registration:

  9. Nodes can take up to 2 minutes to register
  10. Refresh Nodes page in console

  11. Check Node Firmware:

  12. Nodes must have Waveshift firmware
  13. Pre-flashed in demo kit

Cannot Access Console

Problem: http://10.1.0.1 doesn't load

Solutions:

  1. Check Tablet Connection:
  2. USB-Ethernet adapter properly connected
  3. Ethernet cable from adapter to Control Hub LAN
  4. Check tablet network settings (should auto-configure)

  5. Verify Tablet IP:

  6. Tablet should have IP in 10.1.0.x range
  7. Check Network Settings on tablet

  8. Restart Control Hub:

  9. Unplug power from Control Hub
  10. Wait 10 seconds
  11. Reconnect power
  12. Wait 1 minute for boot

  13. Try Different LAN Port:

  14. Control Hub has multiple LAN ports
  15. Try connecting tablet to different port

No Internet on Nodes

Problem: Nodes online but PoPs fail to build

Solutions:

  1. Verify Bearer Internet:
  2. Connect laptop to Bearer
  3. Test: ping 8.8.8.8

  4. Check Node WAN Connection:

  5. Node WAN port must connect to Bearer LAN
  6. Verify cable is seated properly

  7. Check Bearer DHCP:

  8. Bearer must assign IPs to node WAN ports
  9. Check Bearer admin panel for connected devices

Debugging Commands

Comprehensive System Check

#!/bin/bash
# Complete Waveshift system diagnostic

echo "=== AWS Connectivity ==="
aws sts get-caller-identity

echo "=== Configuration File ==="
cat wavectl.json | jq '.'

echo "=== EC2 Instance Status ==="
aws ec2 describe-instances --instance-ids \
  $(cat wavectl.json | jq -r '.waveshift_instance_id') \
  $(cat wavectl.json | jq -r '.kasm_instance_id')

echo "=== DNS Resolution ==="
nslookup waveshift.internal
nslookup kasm.internal

echo "=== VPC Configuration ==="
aws ec2 describe-vpcs --vpc-ids $(cat wavectl.json | jq -r '.vpc_id')

echo "=== Security Groups ==="
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=$(cat wavectl.json | jq -r '.vpc_id')"

echo "=== Route53 Records ==="
aws route53 list-resource-record-sets --hosted-zone-id $(cat wavectl.json | jq -r '.hosted_zone_id')

### Router Diagnostic

```bash
{{ ... }}
# GL.iNet router diagnostic script

ROUTER_IP="10.34.0.1"

echo "=== Router Connectivity ==="
ping -c 3 $ROUTER_IP

echo "=== SSH Test ==="
ssh -o ConnectTimeout=5 root@$ROUTER_IP "echo 'SSH OK'"

echo "=== Router Info ==="
ssh root@$ROUTER_IP "cat /etc/openwrt_release"

echo "=== Network Configuration ==="
ssh root@$ROUTER_IP "uci show network | grep -E '(interface|proto|ipaddr)'"

echo "=== WireGuard Status ==="
ssh root@$ROUTER_IP "wg show"

echo "=== DHCP Configuration ==="
ssh root@$ROUTER_IP "uci show dhcp"

echo "=== Device Scanner ==="
ssh root@$ROUTER_IP "crontab -l | grep device"

Getting Help

Log Collection

When reporting issues, collect these logs:

  1. wavectl Output:

    wavectl deploy --region us-east-1 --identity-provider your-provider > deployment.log 2>&1
    

  2. AWS CloudTrail Events:

    aws logs describe-log-groups --log-group-name-prefix /aws/
    

  3. Instance Logs:

    # Via SSH to instances
    sudo journalctl -u waveshift.service
    sudo journalctl -u kasm.service
    

Support Information

Include this information when seeking support:

  • wavectl version info
  • AWS region and account ID
  • Configuration file (sanitized)
  • Error messages and logs
  • Steps to reproduce the issue

For additional help, check the CLI Reference or review the Workflow Examples.