From 94d953360a3d2cae124f20bc766d701453c4e342 Mon Sep 17 00:00:00 2001 From: Shilaoshi Date: Mon, 30 Mar 2026 23:41:03 +0800 Subject: [PATCH] fix: return error and stop spinner on domain delete failure Two issues in domain/delete: 1. When RemoveDomain returns false (API-level failure), the code logged a warning and returned nil (exit code 0), making it impossible for callers to detect the failure. 2. Both ListDomains and RemoveDomain error paths returned early without calling s.Stop(), leaving the spinner running and corrupting terminal output. Fix: call s.Stop() before returning errors, and return fmt.Errorf instead of nil when deleteResult is false. --- internal/cmd/domain/delete/delete.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/cmd/domain/delete/delete.go b/internal/cmd/domain/delete/delete.go index 2159d18..1f1845a 100644 --- a/internal/cmd/domain/delete/delete.go +++ b/internal/cmd/domain/delete/delete.go @@ -69,6 +69,7 @@ func runDeleteDomainInteractive(f *cmdutil.Factory, opts *Options) error { s.Start() domainList, err := f.ApiClient.ListDomains(context.Background(), opts.id, opts.environmentID) if err != nil { + s.Stop() return err } s.Stop() @@ -128,13 +129,13 @@ func runDeleteDomainNonInteractive(f *cmdutil.Factory, opts *Options) error { s.Start() deleteResult, err := f.ApiClient.RemoveDomain(context.Background(), opts.domainName) if err != nil { + s.Stop() return err } s.Stop() if !deleteResult { - f.Log.Warnf("Delete domain %s failed", opts.domainName) - return nil + return fmt.Errorf("delete domain %s failed", opts.domainName) } if f.JSON {