From 47e2d2cc24a3623fbea80cd568126eaffa2d0335 Mon Sep 17 00:00:00 2001 From: Ashraf Fouda Date: Wed, 21 Jan 2026 16:47:48 +0200 Subject: [PATCH] fixes deprovision panic and recurring deployment doesn't exist error Signed-off-by: Ashraf Fouda --- pkg/primitives/vm-light/vm.go | 8 +++++--- pkg/provision/engine.go | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pkg/primitives/vm-light/vm.go b/pkg/primitives/vm-light/vm.go index 0c41ad60..9a25944e 100644 --- a/pkg/primitives/vm-light/vm.go +++ b/pkg/primitives/vm-light/vm.go @@ -308,10 +308,12 @@ func (p *Manager) Deprovision(ctx context.Context, wl *gridtypes.WorkloadWithID) log.Error().Err(err).Str("name", volName).Msg("failed to delete rootfs volume") } - tapName := wl.ID.Unique(string(cfg.Network.Mycelium.Network)) + if cfg.Network.Mycelium != nil { + tapName := wl.ID.Unique(string(cfg.Network.Mycelium.Network)) - if err := network.Detach(ctx, tapName); err != nil { - return errors.Wrap(err, "could not clean up tap device") + if err := network.Detach(ctx, tapName); err != nil { + return errors.Wrap(err, "could not clean up tap device") + } } return nil diff --git a/pkg/provision/engine.go b/pkg/provision/engine.go index 6358b543..7cfc04e9 100644 --- a/pkg/provision/engine.go +++ b/pkg/provision/engine.go @@ -680,7 +680,8 @@ func (e *NativeEngine) uninstallWorkload(ctx context.Context, wl *gridtypes.Work Logger() _, err := e.storage.Current(twin, deployment, name) - if errors.Is(err, ErrWorkloadNotExist) { + if errors.Is(err, ErrWorkloadNotExist) || errors.Is(err, ErrDeploymentNotExists) { + // workload or deployment doesn't exist in storage, consider it already deleted return nil } else if err != nil { return err