diff --git a/builtin/providers/vsphere/resource_vsphere_virtual_machine.go b/builtin/providers/vsphere/resource_vsphere_virtual_machine.go index cfab8a016..1c90d6176 100644 --- a/builtin/providers/vsphere/resource_vsphere_virtual_machine.go +++ b/builtin/providers/vsphere/resource_vsphere_virtual_machine.go @@ -638,18 +638,24 @@ func resourceVSphereVirtualMachineDelete(d *schema.ResourceData, meta interface{ } log.Printf("[INFO] Deleting virtual machine: %s", d.Id()) - - task, err := vm.PowerOff(context.TODO()) + state, err := vm.PowerState(context.TODO()) if err != nil { return err } - err = task.Wait(context.TODO()) - if err != nil { - return err + if state == types.VirtualMachinePowerStatePoweredOn { + task, err := vm.PowerOff(context.TODO()) + if err != nil { + return err + } + + err = task.Wait(context.TODO()) + if err != nil { + return err + } } - task, err = vm.Destroy(context.TODO()) + task, err := vm.Destroy(context.TODO()) if err != nil { return err }