diff --git a/pkg/serving/v1/client.go b/pkg/serving/v1/client.go index e2f9765a1..cfca0847c 100644 --- a/pkg/serving/v1/client.go +++ b/pkg/serving/v1/client.go @@ -378,6 +378,13 @@ func getBaseRevision(cl KnServingClient, service *servingv1.Service) (*servingv1 // Delete a revision by name func (cl *knServingClient) DeleteRevision(name string, timeout time.Duration) error { + revision, err := cl.client.Revisions(cl.namespace).Get(name, v1.GetOptions{}) + if err != nil { + return clienterrors.GetError(err) + } + if revision.GetDeletionTimestamp() != nil { + return fmt.Errorf("can't delete revision '%s' because it has been already marked for deletion", name) + } if timeout == 0 { return cl.deleteRevision(name) } @@ -387,7 +394,7 @@ func (cl *knServingClient) DeleteRevision(name string, timeout time.Duration) er err, _ := waitForEvent.Wait(name, wait.Options{Timeout: &timeout}, wait.NoopMessageCallback()) waitC <- err }() - err := cl.deleteRevision(name) + err = cl.deleteRevision(name) if err != nil { return clienterrors.GetError(err) }