kubernetes/kops · error
delete server %s: terminating instance: %w
Error message
delete server %s: terminating instance: %w
What it means
In DeleteServer, the ServerAction 'terminate' call (immediate stop+delete of the machine) failed with a non-404 error. 404s are deliberately tolerated (server already gone); any other SDK error — quota, locked state, permission — surfaces here with the server ID.
Source
Thrown at upup/pkg/fi/cloudup/scaleway/cloud.go:633
_, err = s.instanceAPI.DetachVolume(&instance.DetachVolumeRequest{
Zone: s.zone,
VolumeID: volume.ID,
})
if err != nil {
return fmt.Errorf("delete server %s: detaching volume %s", server.ID, volume.ID)
}
}
}
}
// We terminate the server. This stops and deletes the machine immediately
_, err = s.instanceAPI.ServerAction(&instance.ServerActionRequest{
Zone: s.zone,
ServerID: server.ID,
Action: instance.ServerActionTerminate,
})
if err != nil && !is404Error(err) {
return fmt.Errorf("delete server %s: terminating instance: %w", server.ID, err)
}
_, err = s.instanceAPI.WaitForServer(&instance.WaitForServerRequest{
ServerID: server.ID,
Zone: s.zone,
})
if err != nil && !is404Error(err) {
return fmt.Errorf("delete server %s: waiting for instance after termination: %w", server.ID, err)
}
return nil
}
func (s *scwCloudImplementation) DeleteSSHKey(sshkey *iam.SSHKey) error {
err := s.iamAPI.DeleteSSHKey(&iam.DeleteSSHKeyRequest{
SSHKeyID: sshkey.ID,
})
if err != nil {View on GitHub (pinned to 4c8573c808)
Solutions
- Check the wrapped error for the terminate failure reason
- Verify the server is not in a locked/stopped-transitional state
- Retry deletion; terminate can fail transiently during concurrent operations
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/scaleway/cloud.go:633 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/7f0147ad08ecd8c8.
Report an issue: GitHub.