Run the init command to configure your environment:
./ds cloud-dev init
source ~/.zshrc # Apply changes
Re-authenticate with SSO:
# On your local machine
aws sso login
# Or specify profile
aws sso login --profile devstride-yourname
If you see "SSH key not found" when trying to connect:
./ds cloud-dev setup
This will generate new SSH keys and configure your local SSH config.
Cause: Instance may be stopped or overloaded.
Solution:
# Check instance status
./ds cloud-dev list
# If stopped, start it
./ds cloud-dev start
# If running but unresponsive, restart
./ds cloud-dev stop
./ds cloud-dev start
Cause: SSH key mismatch between local and instance.
Solution:
# Re-run setup to regenerate keys
./ds cloud-dev setup
When an instance is stopped and started, it may get a new public IP.
Solution:
# Update your SSH config
./ds cloud-dev setup
# Or use SSM (doesn't need IP)
./ds cloud-dev ssm
Cause: GitHub SSH key not added.
Solution:
./ds cloud-dev ssm
cat ~/.ssh/id_ed25519.pub
ssh -T git@github.com
If gh CLI fails to add your SSH key automatically:
# Grant admin:public_key scope
gh auth refresh --hostname github.com --scopes admin:public_key
# Then retry
./ds cloud-dev setup
Cause: Database connection string incorrect or Neon branch doesn't exist.
Solution:
.env has correct DB_CONNECTION_STRING./ds migrations run
# On the instance
./ds script reset-db
Or remotely:
./ds cloud-dev reset-database
Cause: Usually resource exhaustion.
Solution:
htop
pkill -f 'sst dev'
./ds run backend
esbuildCause: File watcher issues.
Solution: The instance is pre-configured with increased inotify limits. If you still see issues:
# Check current limits
cat /proc/sys/fs/inotify/max_user_watches
# Should be 524288 or higher
If destroy fails to clean up all resources:
# Force destroy
./ds cloud-dev destroy -f
# If still failing, manually check AWS Console for:
# - EC2 instances named devstride-dev-yourname
# - VPCs named devstride-dev-yourname
# - Security groups
# - Elastic IPs
After a failed destroy, clean up manually:
# List what's left
aws ec2 describe-instances \
--filters "Name=tag:Name,Values=devstride-dev-*" \
--query 'Reservations[].Instances[].InstanceId' \
--profile devstride-yourname
If you're stuck:
./ds cloud-dev ssm
sudo journalctl -u cloud-init
./ds cloud-dev ssm