fix: add actionable guidance to destroy_server failures and service timeouts (#959)

When server destruction fails, users are left with a bare error message and
no indication that they may still be billed for a running server. This adds
dashboard URLs and clear warnings to destroy_server errors across 9 clouds
(Hetzner, UpCloud, Contabo, Netcup, RamNode, Hostinger, HOSTKEY, OVH,
Latitude). Also improves error messages for Koyeb (app creation, service
deployment, deployment timeout, instance ID), GitHub Codespaces (creation
failure, readiness timeout), and E2B (sandbox creation failure).

Agent: ux-engineer

Co-authored-by: A <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
A 2026-02-13 09:38:58 -08:00 committed by GitHub
parent 3c3c697ea5
commit 5ebe3e5a13
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 107 additions and 17 deletions

View file

@ -103,7 +103,15 @@ create_codespace() {
if [[ $? -ne 0 ]]; then
log_error "Failed to create codespace"
log_error "$codespace_name"
if [[ -n "$codespace_name" ]]; then
log_error "Error: $codespace_name"
fi
log_error ""
log_error "Common causes:"
log_error " - Codespace spending limit reached (check: https://github.com/settings/billing)"
log_error " - Machine type unavailable for this repository"
log_error " - Repository does not exist or you lack access"
log_error " - GitHub CLI not authenticated (run: gh auth login)"
return 1
fi
@ -133,6 +141,11 @@ wait_for_codespace() {
done
log_error "Codespace failed to become ready after $max_attempts attempts"
log_error ""
log_error "The codespace may still be starting. You can:"
log_error " 1. Check status: gh codespace list"
log_error " 2. Connect manually: gh codespace ssh --codespace $codespace"
log_error " 3. View in browser: https://github.com/codespaces"
return 1
}