From f0b4f802ae1d9a2fd436f7808c7ad67f808596f5 Mon Sep 17 00:00:00 2001
From: "Maximilian Blatt (external expert on behalf of DB Netz)"
 <maximilian.blatt-extern@deutschebahn.com>
Date: Thu, 19 Oct 2023 01:05:49 +0200
Subject: [PATCH] feat(ack): Do not call isUpToDate is resource is deleted

Only affects controllers that are generated with ACK.

Signed-off-by: Maximilian Blatt (external expert on behalf of DB Netz) <maximilian.blatt-extern@deutschebahn.com>
---
 pkg/controller/apigateway/apikey/zz_controller.go          | 7 ++++++-
 pkg/controller/apigateway/authorizer/zz_controller.go      | 7 ++++++-
 pkg/controller/apigateway/basepathmapping/zz_controller.go | 7 ++++++-
 pkg/controller/apigateway/deployment/zz_controller.go      | 7 ++++++-
 .../apigateway/documentationpart/zz_controller.go          | 7 ++++++-
 .../apigateway/documentationversion/zz_controller.go       | 7 ++++++-
 pkg/controller/apigateway/domainname/zz_controller.go      | 7 ++++++-
 pkg/controller/apigateway/gatewayresponse/zz_controller.go | 7 ++++++-
 pkg/controller/apigateway/integration/zz_controller.go     | 7 ++++++-
 .../apigateway/integrationresponse/zz_controller.go        | 7 ++++++-
 pkg/controller/apigateway/method/zz_controller.go          | 7 ++++++-
 pkg/controller/apigateway/methodresponse/zz_controller.go  | 7 ++++++-
 pkg/controller/apigateway/model/zz_controller.go           | 7 ++++++-
 .../apigateway/requestvalidator/zz_controller.go           | 7 ++++++-
 pkg/controller/apigateway/resource/zz_controller.go        | 7 ++++++-
 pkg/controller/apigateway/restapi/zz_controller.go         | 7 ++++++-
 pkg/controller/apigateway/stage/zz_controller.go           | 7 ++++++-
 pkg/controller/apigateway/usageplan/zz_controller.go       | 7 ++++++-
 pkg/controller/apigateway/usageplankey/zz_controller.go    | 7 ++++++-
 pkg/controller/apigateway/vpclink/zz_controller.go         | 7 ++++++-
 pkg/controller/apigatewayv2/api/zz_controller.go           | 7 ++++++-
 pkg/controller/apigatewayv2/apimapping/zz_controller.go    | 7 ++++++-
 pkg/controller/apigatewayv2/authorizer/zz_controller.go    | 7 ++++++-
 pkg/controller/apigatewayv2/deployment/zz_controller.go    | 7 ++++++-
 pkg/controller/apigatewayv2/domainname/zz_controller.go    | 7 ++++++-
 pkg/controller/apigatewayv2/integration/zz_controller.go   | 7 ++++++-
 .../apigatewayv2/integrationresponse/zz_controller.go      | 7 ++++++-
 pkg/controller/apigatewayv2/model/zz_controller.go         | 7 ++++++-
 pkg/controller/apigatewayv2/route/zz_controller.go         | 7 ++++++-
 pkg/controller/apigatewayv2/routeresponse/zz_controller.go | 7 ++++++-
 pkg/controller/apigatewayv2/stage/zz_controller.go         | 7 ++++++-
 pkg/controller/apigatewayv2/vpclink/zz_controller.go       | 7 ++++++-
 pkg/controller/athena/workgroup/zz_controller.go           | 7 ++++++-
 .../autoscaling/autoscalinggroup/zz_controller.go          | 7 ++++++-
 pkg/controller/batch/computeenvironment/zz_controller.go   | 7 ++++++-
 pkg/controller/batch/jobqueue/zz_controller.go             | 7 ++++++-
 pkg/controller/cloudfront/cachepolicy/zz_controller.go     | 7 ++++++-
 .../cloudfrontoriginaccessidentity/zz_controller.go        | 7 ++++++-
 pkg/controller/cloudfront/distribution/zz_controller.go    | 7 ++++++-
 .../cloudfront/responseheaderspolicy/zz_controller.go      | 7 ++++++-
 pkg/controller/cloudsearch/domain/zz_controller.go         | 7 ++++++-
 pkg/controller/cloudwatchlogs/loggroup/zz_controller.go    | 7 ++++++-
 .../cognitoidentityprovider/group/zz_controller.go         | 7 ++++++-
 .../identityprovider/zz_controller.go                      | 7 ++++++-
 .../resourceserver/zz_controller.go                        | 7 ++++++-
 .../cognitoidentityprovider/userpool/zz_controller.go      | 7 ++++++-
 .../userpoolclient/zz_controller.go                        | 7 ++++++-
 .../userpooldomain/zz_controller.go                        | 7 ++++++-
 pkg/controller/dax/cluster/zz_controller.go                | 7 ++++++-
 pkg/controller/dax/parametergroup/zz_controller.go         | 7 ++++++-
 pkg/controller/dax/subnetgroup/zz_controller.go            | 7 ++++++-
 pkg/controller/docdb/dbcluster/zz_controller.go            | 7 ++++++-
 .../docdb/dbclusterparametergroup/zz_controller.go         | 7 ++++++-
 pkg/controller/docdb/dbinstance/zz_controller.go           | 7 ++++++-
 pkg/controller/docdb/dbsubnetgroup/zz_controller.go        | 7 ++++++-
 pkg/controller/dynamodb/backup/zz_controller.go            | 7 ++++++-
 pkg/controller/dynamodb/globaltable/zz_controller.go       | 7 ++++++-
 pkg/controller/dynamodb/table/zz_controller.go             | 7 ++++++-
 pkg/controller/ec2/flowlog/zz_controller.go                | 7 ++++++-
 pkg/controller/ec2/launchtemplate/zz_controller.go         | 7 ++++++-
 pkg/controller/ec2/launchtemplateversion/zz_controller.go  | 7 ++++++-
 pkg/controller/ec2/transitgateway/zz_controller.go         | 7 ++++++-
 .../ec2/transitgatewayroutetable/zz_controller.go          | 7 ++++++-
 .../ec2/transitgatewayvpcattachment/zz_controller.go       | 7 ++++++-
 pkg/controller/ec2/volume/zz_controller.go                 | 7 ++++++-
 pkg/controller/ec2/vpcendpoint/zz_controller.go            | 7 ++++++-
 .../ec2/vpcendpointserviceconfiguration/zz_controller.go   | 7 ++++++-
 pkg/controller/ec2/vpcpeeringconnection/zz_controller.go   | 7 ++++++-
 pkg/controller/ecr/lifecyclepolicy/zz_controller.go        | 7 ++++++-
 pkg/controller/ecs/cluster/zz_controller.go                | 7 ++++++-
 pkg/controller/ecs/service/zz_controller.go                | 7 ++++++-
 pkg/controller/ecs/taskdefinition/zz_controller.go         | 7 ++++++-
 pkg/controller/efs/accesspoint/zz_controller.go            | 7 ++++++-
 pkg/controller/efs/filesystem/zz_controller.go             | 7 ++++++-
 pkg/controller/efs/mounttarget/zz_controller.go            | 7 ++++++-
 pkg/controller/eks/addon/zz_controller.go                  | 7 ++++++-
 .../elasticache/cacheparametergroup/zz_controller.go       | 7 ++++++-
 pkg/controller/elbv2/listener/zz_controller.go             | 7 ++++++-
 pkg/controller/elbv2/loadbalancer/zz_controller.go         | 7 ++++++-
 pkg/controller/elbv2/targetgroup/zz_controller.go          | 7 ++++++-
 pkg/controller/emrcontainers/jobrun/zz_controller.go       | 7 ++++++-
 .../emrcontainers/virtualcluster/zz_controller.go          | 7 ++++++-
 .../globalaccelerator/accelerator/zz_controller.go         | 7 ++++++-
 .../globalaccelerator/endpointgroup/zz_controller.go       | 7 ++++++-
 pkg/controller/globalaccelerator/listener/zz_controller.go | 7 ++++++-
 pkg/controller/glue/classifier/zz_controller.go            | 7 ++++++-
 pkg/controller/glue/connection/zz_controller.go            | 7 ++++++-
 pkg/controller/glue/crawler/zz_controller.go               | 7 ++++++-
 pkg/controller/glue/database/zz_controller.go              | 7 ++++++-
 pkg/controller/glue/job/zz_controller.go                   | 7 ++++++-
 pkg/controller/glue/securityconfiguration/zz_controller.go | 7 ++++++-
 pkg/controller/iam/instanceprofile/zz_controller.go        | 7 ++++++-
 pkg/controller/iot/policy/zz_controller.go                 | 7 ++++++-
 pkg/controller/iot/thing/zz_controller.go                  | 7 ++++++-
 pkg/controller/kafka/cluster/zz_controller.go              | 7 ++++++-
 pkg/controller/kafka/configuration/zz_controller.go        | 7 ++++++-
 pkg/controller/kinesis/stream/zz_controller.go             | 7 ++++++-
 pkg/controller/kms/key/zz_controller.go                    | 7 ++++++-
 pkg/controller/lambda/function/zz_controller.go            | 7 ++++++-
 pkg/controller/lambda/functionurlconfig/zz_controller.go   | 7 ++++++-
 pkg/controller/mq/broker/zz_controller.go                  | 7 ++++++-
 pkg/controller/mq/user/zz_controller.go                    | 7 ++++++-
 pkg/controller/mwaa/environment/zz_controller.go           | 7 ++++++-
 pkg/controller/neptune/dbcluster/zz_controller.go          | 7 ++++++-
 pkg/controller/opensearchservice/domain/zz_controller.go   | 7 ++++++-
 .../alertmanagerdefinition/zz_controller.go                | 7 ++++++-
 .../prometheusservice/rulegroupsnamespace/zz_controller.go | 7 ++++++-
 .../prometheusservice/workspace/zz_controller.go           | 7 ++++++-
 pkg/controller/ram/resourceshare/zz_controller.go          | 7 ++++++-
 pkg/controller/rds/dbcluster/zz_controller.go              | 7 ++++++-
 .../rds/dbclusterparametergroup/zz_controller.go           | 7 ++++++-
 pkg/controller/rds/dbinstance/zz_controller.go             | 7 ++++++-
 pkg/controller/rds/dbparametergroup/zz_controller.go       | 7 ++++++-
 pkg/controller/rds/globalcluster/zz_controller.go          | 7 ++++++-
 pkg/controller/rds/optiongroup/zz_controller.go            | 7 ++++++-
 .../route53resolver/resolverendpoint/zz_controller.go      | 7 ++++++-
 .../route53resolver/resolverrule/zz_controller.go          | 7 ++++++-
 pkg/controller/s3control/accesspoint/zz_controller.go      | 7 ++++++-
 pkg/controller/secretsmanager/secret/zz_controller.go      | 7 ++++++-
 pkg/controller/servicediscovery/service/zz_controller.go   | 7 ++++++-
 pkg/controller/sesv2/configurationset/zz_controller.go     | 7 ++++++-
 pkg/controller/sesv2/emailidentity/zz_controller.go        | 7 ++++++-
 pkg/controller/sesv2/emailtemplate/zz_controller.go        | 7 ++++++-
 pkg/controller/sfn/activity/zz_controller.go               | 7 ++++++-
 pkg/controller/sfn/statemachine/zz_controller.go           | 7 ++++++-
 pkg/controller/transfer/server/zz_controller.go            | 7 ++++++-
 pkg/controller/transfer/user/zz_controller.go              | 7 ++++++-
 templates/crossplane/pkg/controller.go.tpl                 | 7 ++++++-
 128 files changed, 768 insertions(+), 128 deletions(-)

diff --git a/pkg/controller/apigateway/apikey/zz_controller.go b/pkg/controller/apigateway/apikey/zz_controller.go
index 69c3e7ffa2..f8ded492b8 100644
--- a/pkg/controller/apigateway/apikey/zz_controller.go
+++ b/pkg/controller/apigateway/apikey/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateAPIKey(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/authorizer/zz_controller.go b/pkg/controller/apigateway/authorizer/zz_controller.go
index 9b256a120a..79f6d0c74f 100644
--- a/pkg/controller/apigateway/authorizer/zz_controller.go
+++ b/pkg/controller/apigateway/authorizer/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateAuthorizer(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/basepathmapping/zz_controller.go b/pkg/controller/apigateway/basepathmapping/zz_controller.go
index ab26e489c3..f758987d16 100644
--- a/pkg/controller/apigateway/basepathmapping/zz_controller.go
+++ b/pkg/controller/apigateway/basepathmapping/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateBasePathMapping(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/deployment/zz_controller.go b/pkg/controller/apigateway/deployment/zz_controller.go
index 3163b2d954..119a6a6269 100644
--- a/pkg/controller/apigateway/deployment/zz_controller.go
+++ b/pkg/controller/apigateway/deployment/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDeployment(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/documentationpart/zz_controller.go b/pkg/controller/apigateway/documentationpart/zz_controller.go
index ae589e6d92..d22a0d922b 100644
--- a/pkg/controller/apigateway/documentationpart/zz_controller.go
+++ b/pkg/controller/apigateway/documentationpart/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDocumentationPart(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/documentationversion/zz_controller.go b/pkg/controller/apigateway/documentationversion/zz_controller.go
index 7a823eb4bc..949c8388de 100644
--- a/pkg/controller/apigateway/documentationversion/zz_controller.go
+++ b/pkg/controller/apigateway/documentationversion/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDocumentationVersion(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/domainname/zz_controller.go b/pkg/controller/apigateway/domainname/zz_controller.go
index 4bfc7c6b5a..ae3f4383e5 100644
--- a/pkg/controller/apigateway/domainname/zz_controller.go
+++ b/pkg/controller/apigateway/domainname/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDomainName(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/gatewayresponse/zz_controller.go b/pkg/controller/apigateway/gatewayresponse/zz_controller.go
index a1b65be00f..ff09bd6fad 100644
--- a/pkg/controller/apigateway/gatewayresponse/zz_controller.go
+++ b/pkg/controller/apigateway/gatewayresponse/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateGatewayResponse(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/integration/zz_controller.go b/pkg/controller/apigateway/integration/zz_controller.go
index 32aeaa74e7..042c441a5d 100644
--- a/pkg/controller/apigateway/integration/zz_controller.go
+++ b/pkg/controller/apigateway/integration/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateIntegration(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/integrationresponse/zz_controller.go b/pkg/controller/apigateway/integrationresponse/zz_controller.go
index 4357d528d6..78fd84ef85 100644
--- a/pkg/controller/apigateway/integrationresponse/zz_controller.go
+++ b/pkg/controller/apigateway/integrationresponse/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateIntegrationResponse(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/method/zz_controller.go b/pkg/controller/apigateway/method/zz_controller.go
index abbeaad8f5..fddfe71698 100644
--- a/pkg/controller/apigateway/method/zz_controller.go
+++ b/pkg/controller/apigateway/method/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateMethod(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/methodresponse/zz_controller.go b/pkg/controller/apigateway/methodresponse/zz_controller.go
index fdb20821bf..4ee4f81697 100644
--- a/pkg/controller/apigateway/methodresponse/zz_controller.go
+++ b/pkg/controller/apigateway/methodresponse/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateMethodResponse(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/model/zz_controller.go b/pkg/controller/apigateway/model/zz_controller.go
index 6c31a6785c..0f1d38916c 100644
--- a/pkg/controller/apigateway/model/zz_controller.go
+++ b/pkg/controller/apigateway/model/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateModel(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/requestvalidator/zz_controller.go b/pkg/controller/apigateway/requestvalidator/zz_controller.go
index 611cbcbabc..3d9641576a 100644
--- a/pkg/controller/apigateway/requestvalidator/zz_controller.go
+++ b/pkg/controller/apigateway/requestvalidator/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateRequestValidator(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/resource/zz_controller.go b/pkg/controller/apigateway/resource/zz_controller.go
index 2c8d7a937a..ec006db0b0 100644
--- a/pkg/controller/apigateway/resource/zz_controller.go
+++ b/pkg/controller/apigateway/resource/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateResource(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/restapi/zz_controller.go b/pkg/controller/apigateway/restapi/zz_controller.go
index 898e8a80f3..717398cd30 100644
--- a/pkg/controller/apigateway/restapi/zz_controller.go
+++ b/pkg/controller/apigateway/restapi/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateRestAPI(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/stage/zz_controller.go b/pkg/controller/apigateway/stage/zz_controller.go
index 9af33d5fde..0db6b6271e 100644
--- a/pkg/controller/apigateway/stage/zz_controller.go
+++ b/pkg/controller/apigateway/stage/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateStage(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/usageplan/zz_controller.go b/pkg/controller/apigateway/usageplan/zz_controller.go
index 5d48ee1afa..d59a7bcbac 100644
--- a/pkg/controller/apigateway/usageplan/zz_controller.go
+++ b/pkg/controller/apigateway/usageplan/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateUsagePlan(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/usageplankey/zz_controller.go b/pkg/controller/apigateway/usageplankey/zz_controller.go
index 7e8a22aa36..75702d138b 100644
--- a/pkg/controller/apigateway/usageplankey/zz_controller.go
+++ b/pkg/controller/apigateway/usageplankey/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateUsagePlanKey(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigateway/vpclink/zz_controller.go b/pkg/controller/apigateway/vpclink/zz_controller.go
index 5e83c4e328..ccba977a1f 100644
--- a/pkg/controller/apigateway/vpclink/zz_controller.go
+++ b/pkg/controller/apigateway/vpclink/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateVPCLink(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigatewayv2/api/zz_controller.go b/pkg/controller/apigatewayv2/api/zz_controller.go
index 06d4157be4..d09f08c239 100644
--- a/pkg/controller/apigatewayv2/api/zz_controller.go
+++ b/pkg/controller/apigatewayv2/api/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateAPI(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigatewayv2/apimapping/zz_controller.go b/pkg/controller/apigatewayv2/apimapping/zz_controller.go
index 25495be3af..ae63acf938 100644
--- a/pkg/controller/apigatewayv2/apimapping/zz_controller.go
+++ b/pkg/controller/apigatewayv2/apimapping/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateAPIMapping(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigatewayv2/authorizer/zz_controller.go b/pkg/controller/apigatewayv2/authorizer/zz_controller.go
index 92ba3c5c09..3c4fcb60f5 100644
--- a/pkg/controller/apigatewayv2/authorizer/zz_controller.go
+++ b/pkg/controller/apigatewayv2/authorizer/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateAuthorizer(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigatewayv2/deployment/zz_controller.go b/pkg/controller/apigatewayv2/deployment/zz_controller.go
index c7248505e1..b18af29883 100644
--- a/pkg/controller/apigatewayv2/deployment/zz_controller.go
+++ b/pkg/controller/apigatewayv2/deployment/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDeployment(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigatewayv2/domainname/zz_controller.go b/pkg/controller/apigatewayv2/domainname/zz_controller.go
index fca2fcd687..15efd5a09c 100644
--- a/pkg/controller/apigatewayv2/domainname/zz_controller.go
+++ b/pkg/controller/apigatewayv2/domainname/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDomainName(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigatewayv2/integration/zz_controller.go b/pkg/controller/apigatewayv2/integration/zz_controller.go
index fe9aa0dec5..8e6939c7b6 100644
--- a/pkg/controller/apigatewayv2/integration/zz_controller.go
+++ b/pkg/controller/apigatewayv2/integration/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateIntegration(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigatewayv2/integrationresponse/zz_controller.go b/pkg/controller/apigatewayv2/integrationresponse/zz_controller.go
index d2ddd0d6fd..c26a619567 100644
--- a/pkg/controller/apigatewayv2/integrationresponse/zz_controller.go
+++ b/pkg/controller/apigatewayv2/integrationresponse/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateIntegrationResponse(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigatewayv2/model/zz_controller.go b/pkg/controller/apigatewayv2/model/zz_controller.go
index c22dd680c6..16f5a85a3a 100644
--- a/pkg/controller/apigatewayv2/model/zz_controller.go
+++ b/pkg/controller/apigatewayv2/model/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateModel(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigatewayv2/route/zz_controller.go b/pkg/controller/apigatewayv2/route/zz_controller.go
index dc249087dc..08071a6985 100644
--- a/pkg/controller/apigatewayv2/route/zz_controller.go
+++ b/pkg/controller/apigatewayv2/route/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateRoute(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigatewayv2/routeresponse/zz_controller.go b/pkg/controller/apigatewayv2/routeresponse/zz_controller.go
index 56cfda2396..a42e6ec66d 100644
--- a/pkg/controller/apigatewayv2/routeresponse/zz_controller.go
+++ b/pkg/controller/apigatewayv2/routeresponse/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateRouteResponse(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigatewayv2/stage/zz_controller.go b/pkg/controller/apigatewayv2/stage/zz_controller.go
index 12791c10d6..bb67c8423d 100644
--- a/pkg/controller/apigatewayv2/stage/zz_controller.go
+++ b/pkg/controller/apigatewayv2/stage/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateStage(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/apigatewayv2/vpclink/zz_controller.go b/pkg/controller/apigatewayv2/vpclink/zz_controller.go
index 4bad3da6dc..ef3d334721 100644
--- a/pkg/controller/apigatewayv2/vpclink/zz_controller.go
+++ b/pkg/controller/apigatewayv2/vpclink/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateVPCLink(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/athena/workgroup/zz_controller.go b/pkg/controller/athena/workgroup/zz_controller.go
index 4080e0c900..2a04a5b3db 100644
--- a/pkg/controller/athena/workgroup/zz_controller.go
+++ b/pkg/controller/athena/workgroup/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateWorkGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/autoscaling/autoscalinggroup/zz_controller.go b/pkg/controller/autoscaling/autoscalinggroup/zz_controller.go
index 5c7ace2105..835d890ba2 100644
--- a/pkg/controller/autoscaling/autoscalinggroup/zz_controller.go
+++ b/pkg/controller/autoscaling/autoscalinggroup/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateAutoScalingGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/batch/computeenvironment/zz_controller.go b/pkg/controller/batch/computeenvironment/zz_controller.go
index 365a4058bd..85d12d1ccc 100644
--- a/pkg/controller/batch/computeenvironment/zz_controller.go
+++ b/pkg/controller/batch/computeenvironment/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateComputeEnvironment(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/batch/jobqueue/zz_controller.go b/pkg/controller/batch/jobqueue/zz_controller.go
index c3058a5ea5..f30693dd55 100644
--- a/pkg/controller/batch/jobqueue/zz_controller.go
+++ b/pkg/controller/batch/jobqueue/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateJobQueue(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/cloudfront/cachepolicy/zz_controller.go b/pkg/controller/cloudfront/cachepolicy/zz_controller.go
index cca10b2efa..72a895666c 100644
--- a/pkg/controller/cloudfront/cachepolicy/zz_controller.go
+++ b/pkg/controller/cloudfront/cachepolicy/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateCachePolicy(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/cloudfront/cloudfrontoriginaccessidentity/zz_controller.go b/pkg/controller/cloudfront/cloudfrontoriginaccessidentity/zz_controller.go
index d36cc7c1ad..4ef812a8b5 100644
--- a/pkg/controller/cloudfront/cloudfrontoriginaccessidentity/zz_controller.go
+++ b/pkg/controller/cloudfront/cloudfrontoriginaccessidentity/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateCloudFrontOriginAccessIdentity(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/cloudfront/distribution/zz_controller.go b/pkg/controller/cloudfront/distribution/zz_controller.go
index 9412226610..dbf96685d3 100644
--- a/pkg/controller/cloudfront/distribution/zz_controller.go
+++ b/pkg/controller/cloudfront/distribution/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDistribution(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/cloudfront/responseheaderspolicy/zz_controller.go b/pkg/controller/cloudfront/responseheaderspolicy/zz_controller.go
index a4f9c6012b..9c34971748 100644
--- a/pkg/controller/cloudfront/responseheaderspolicy/zz_controller.go
+++ b/pkg/controller/cloudfront/responseheaderspolicy/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateResponseHeadersPolicy(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/cloudsearch/domain/zz_controller.go b/pkg/controller/cloudsearch/domain/zz_controller.go
index a554624fb7..9155092bcc 100644
--- a/pkg/controller/cloudsearch/domain/zz_controller.go
+++ b/pkg/controller/cloudsearch/domain/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDomain(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/cloudwatchlogs/loggroup/zz_controller.go b/pkg/controller/cloudwatchlogs/loggroup/zz_controller.go
index b4930b87a3..9f2943159d 100644
--- a/pkg/controller/cloudwatchlogs/loggroup/zz_controller.go
+++ b/pkg/controller/cloudwatchlogs/loggroup/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateLogGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/cognitoidentityprovider/group/zz_controller.go b/pkg/controller/cognitoidentityprovider/group/zz_controller.go
index abc70eed82..9d1516f8b5 100644
--- a/pkg/controller/cognitoidentityprovider/group/zz_controller.go
+++ b/pkg/controller/cognitoidentityprovider/group/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/cognitoidentityprovider/identityprovider/zz_controller.go b/pkg/controller/cognitoidentityprovider/identityprovider/zz_controller.go
index 12cbf7147c..1b4b88464a 100644
--- a/pkg/controller/cognitoidentityprovider/identityprovider/zz_controller.go
+++ b/pkg/controller/cognitoidentityprovider/identityprovider/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateIdentityProvider(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/cognitoidentityprovider/resourceserver/zz_controller.go b/pkg/controller/cognitoidentityprovider/resourceserver/zz_controller.go
index 50da0fb274..ad8cdbfe30 100644
--- a/pkg/controller/cognitoidentityprovider/resourceserver/zz_controller.go
+++ b/pkg/controller/cognitoidentityprovider/resourceserver/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateResourceServer(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/cognitoidentityprovider/userpool/zz_controller.go b/pkg/controller/cognitoidentityprovider/userpool/zz_controller.go
index d2b4bab374..3260479bf3 100644
--- a/pkg/controller/cognitoidentityprovider/userpool/zz_controller.go
+++ b/pkg/controller/cognitoidentityprovider/userpool/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateUserPool(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/cognitoidentityprovider/userpoolclient/zz_controller.go b/pkg/controller/cognitoidentityprovider/userpoolclient/zz_controller.go
index 26d77662ea..1efc2fbd64 100644
--- a/pkg/controller/cognitoidentityprovider/userpoolclient/zz_controller.go
+++ b/pkg/controller/cognitoidentityprovider/userpoolclient/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateUserPoolClient(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/cognitoidentityprovider/userpooldomain/zz_controller.go b/pkg/controller/cognitoidentityprovider/userpooldomain/zz_controller.go
index 0400f6f563..9adb2c0baf 100644
--- a/pkg/controller/cognitoidentityprovider/userpooldomain/zz_controller.go
+++ b/pkg/controller/cognitoidentityprovider/userpooldomain/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateUserPoolDomain(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/dax/cluster/zz_controller.go b/pkg/controller/dax/cluster/zz_controller.go
index be758f8614..52df69ebe8 100644
--- a/pkg/controller/dax/cluster/zz_controller.go
+++ b/pkg/controller/dax/cluster/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateCluster(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/dax/parametergroup/zz_controller.go b/pkg/controller/dax/parametergroup/zz_controller.go
index fe0cb83460..6862fef980 100644
--- a/pkg/controller/dax/parametergroup/zz_controller.go
+++ b/pkg/controller/dax/parametergroup/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateParameterGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/dax/subnetgroup/zz_controller.go b/pkg/controller/dax/subnetgroup/zz_controller.go
index a1b70f533b..8e8bba14f7 100644
--- a/pkg/controller/dax/subnetgroup/zz_controller.go
+++ b/pkg/controller/dax/subnetgroup/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateSubnetGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/docdb/dbcluster/zz_controller.go b/pkg/controller/docdb/dbcluster/zz_controller.go
index ac23fe9a50..95ff3fb912 100644
--- a/pkg/controller/docdb/dbcluster/zz_controller.go
+++ b/pkg/controller/docdb/dbcluster/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDBCluster(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/docdb/dbclusterparametergroup/zz_controller.go b/pkg/controller/docdb/dbclusterparametergroup/zz_controller.go
index 5b5474f47a..e5ac4ec63f 100644
--- a/pkg/controller/docdb/dbclusterparametergroup/zz_controller.go
+++ b/pkg/controller/docdb/dbclusterparametergroup/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDBClusterParameterGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/docdb/dbinstance/zz_controller.go b/pkg/controller/docdb/dbinstance/zz_controller.go
index 8d3efaf0b3..2db9d0c932 100644
--- a/pkg/controller/docdb/dbinstance/zz_controller.go
+++ b/pkg/controller/docdb/dbinstance/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDBInstance(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/docdb/dbsubnetgroup/zz_controller.go b/pkg/controller/docdb/dbsubnetgroup/zz_controller.go
index 94477a85ee..0c6fe47e8d 100644
--- a/pkg/controller/docdb/dbsubnetgroup/zz_controller.go
+++ b/pkg/controller/docdb/dbsubnetgroup/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDBSubnetGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/dynamodb/backup/zz_controller.go b/pkg/controller/dynamodb/backup/zz_controller.go
index 09d4fa3efe..4966697b4b 100644
--- a/pkg/controller/dynamodb/backup/zz_controller.go
+++ b/pkg/controller/dynamodb/backup/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateBackup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/dynamodb/globaltable/zz_controller.go b/pkg/controller/dynamodb/globaltable/zz_controller.go
index 6b157c80b6..d161c3dc11 100644
--- a/pkg/controller/dynamodb/globaltable/zz_controller.go
+++ b/pkg/controller/dynamodb/globaltable/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateGlobalTable(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/dynamodb/table/zz_controller.go b/pkg/controller/dynamodb/table/zz_controller.go
index 2a33dde70f..173ea24e6a 100644
--- a/pkg/controller/dynamodb/table/zz_controller.go
+++ b/pkg/controller/dynamodb/table/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateTable(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ec2/flowlog/zz_controller.go b/pkg/controller/ec2/flowlog/zz_controller.go
index b1f67961d4..fa90b53876 100644
--- a/pkg/controller/ec2/flowlog/zz_controller.go
+++ b/pkg/controller/ec2/flowlog/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateFlowLog(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ec2/launchtemplate/zz_controller.go b/pkg/controller/ec2/launchtemplate/zz_controller.go
index eecb81ef19..d5b3697bf4 100644
--- a/pkg/controller/ec2/launchtemplate/zz_controller.go
+++ b/pkg/controller/ec2/launchtemplate/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateLaunchTemplate(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ec2/launchtemplateversion/zz_controller.go b/pkg/controller/ec2/launchtemplateversion/zz_controller.go
index ec57387a60..3857cd4819 100644
--- a/pkg/controller/ec2/launchtemplateversion/zz_controller.go
+++ b/pkg/controller/ec2/launchtemplateversion/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateLaunchTemplateVersion(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ec2/transitgateway/zz_controller.go b/pkg/controller/ec2/transitgateway/zz_controller.go
index b409d95ae1..93cadfc814 100644
--- a/pkg/controller/ec2/transitgateway/zz_controller.go
+++ b/pkg/controller/ec2/transitgateway/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateTransitGateway(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ec2/transitgatewayroutetable/zz_controller.go b/pkg/controller/ec2/transitgatewayroutetable/zz_controller.go
index 955d8b7e72..a7b3e68d5d 100644
--- a/pkg/controller/ec2/transitgatewayroutetable/zz_controller.go
+++ b/pkg/controller/ec2/transitgatewayroutetable/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateTransitGatewayRouteTable(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ec2/transitgatewayvpcattachment/zz_controller.go b/pkg/controller/ec2/transitgatewayvpcattachment/zz_controller.go
index 3ca0eb1d04..98605c3003 100644
--- a/pkg/controller/ec2/transitgatewayvpcattachment/zz_controller.go
+++ b/pkg/controller/ec2/transitgatewayvpcattachment/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateTransitGatewayVPCAttachment(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ec2/volume/zz_controller.go b/pkg/controller/ec2/volume/zz_controller.go
index 8e1f93edb2..588269d774 100644
--- a/pkg/controller/ec2/volume/zz_controller.go
+++ b/pkg/controller/ec2/volume/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateVolume(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ec2/vpcendpoint/zz_controller.go b/pkg/controller/ec2/vpcendpoint/zz_controller.go
index 7f4a96bee7..39504cda3b 100644
--- a/pkg/controller/ec2/vpcendpoint/zz_controller.go
+++ b/pkg/controller/ec2/vpcendpoint/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateVPCEndpoint(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ec2/vpcendpointserviceconfiguration/zz_controller.go b/pkg/controller/ec2/vpcendpointserviceconfiguration/zz_controller.go
index b819ffbf97..4713081e7d 100644
--- a/pkg/controller/ec2/vpcendpointserviceconfiguration/zz_controller.go
+++ b/pkg/controller/ec2/vpcendpointserviceconfiguration/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateVPCEndpointServiceConfiguration(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ec2/vpcpeeringconnection/zz_controller.go b/pkg/controller/ec2/vpcpeeringconnection/zz_controller.go
index bef23a5469..b529fa6ccf 100644
--- a/pkg/controller/ec2/vpcpeeringconnection/zz_controller.go
+++ b/pkg/controller/ec2/vpcpeeringconnection/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateVPCPeeringConnection(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ecr/lifecyclepolicy/zz_controller.go b/pkg/controller/ecr/lifecyclepolicy/zz_controller.go
index c8869e2138..6230cbd23b 100644
--- a/pkg/controller/ecr/lifecyclepolicy/zz_controller.go
+++ b/pkg/controller/ecr/lifecyclepolicy/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateLifecyclePolicy(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ecs/cluster/zz_controller.go b/pkg/controller/ecs/cluster/zz_controller.go
index 0e19af2dad..35ac5ef162 100644
--- a/pkg/controller/ecs/cluster/zz_controller.go
+++ b/pkg/controller/ecs/cluster/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateCluster(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ecs/service/zz_controller.go b/pkg/controller/ecs/service/zz_controller.go
index d4b64b7943..57f2cd6d2f 100644
--- a/pkg/controller/ecs/service/zz_controller.go
+++ b/pkg/controller/ecs/service/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateService(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ecs/taskdefinition/zz_controller.go b/pkg/controller/ecs/taskdefinition/zz_controller.go
index 8392b1fdcb..7d190df936 100644
--- a/pkg/controller/ecs/taskdefinition/zz_controller.go
+++ b/pkg/controller/ecs/taskdefinition/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateTaskDefinition(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/efs/accesspoint/zz_controller.go b/pkg/controller/efs/accesspoint/zz_controller.go
index 6776ecfcb7..e9ecb62bea 100644
--- a/pkg/controller/efs/accesspoint/zz_controller.go
+++ b/pkg/controller/efs/accesspoint/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateAccessPoint(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/efs/filesystem/zz_controller.go b/pkg/controller/efs/filesystem/zz_controller.go
index 77dbe87552..7251182681 100644
--- a/pkg/controller/efs/filesystem/zz_controller.go
+++ b/pkg/controller/efs/filesystem/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateFileSystem(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/efs/mounttarget/zz_controller.go b/pkg/controller/efs/mounttarget/zz_controller.go
index cc417dbb14..38c34c7fcc 100644
--- a/pkg/controller/efs/mounttarget/zz_controller.go
+++ b/pkg/controller/efs/mounttarget/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateMountTarget(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/eks/addon/zz_controller.go b/pkg/controller/eks/addon/zz_controller.go
index 6b1cec61d5..174fa2dc8c 100644
--- a/pkg/controller/eks/addon/zz_controller.go
+++ b/pkg/controller/eks/addon/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateAddon(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/elasticache/cacheparametergroup/zz_controller.go b/pkg/controller/elasticache/cacheparametergroup/zz_controller.go
index 0c7a9642b2..d1318247f6 100644
--- a/pkg/controller/elasticache/cacheparametergroup/zz_controller.go
+++ b/pkg/controller/elasticache/cacheparametergroup/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateCacheParameterGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/elbv2/listener/zz_controller.go b/pkg/controller/elbv2/listener/zz_controller.go
index da979ba83e..6a1d6d0a0d 100644
--- a/pkg/controller/elbv2/listener/zz_controller.go
+++ b/pkg/controller/elbv2/listener/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateListener(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/elbv2/loadbalancer/zz_controller.go b/pkg/controller/elbv2/loadbalancer/zz_controller.go
index e1ed886818..76f10be75f 100644
--- a/pkg/controller/elbv2/loadbalancer/zz_controller.go
+++ b/pkg/controller/elbv2/loadbalancer/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateLoadBalancer(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/elbv2/targetgroup/zz_controller.go b/pkg/controller/elbv2/targetgroup/zz_controller.go
index 2bfa811485..b70064ddae 100644
--- a/pkg/controller/elbv2/targetgroup/zz_controller.go
+++ b/pkg/controller/elbv2/targetgroup/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateTargetGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/emrcontainers/jobrun/zz_controller.go b/pkg/controller/emrcontainers/jobrun/zz_controller.go
index 1b181eceb4..a99108e07c 100644
--- a/pkg/controller/emrcontainers/jobrun/zz_controller.go
+++ b/pkg/controller/emrcontainers/jobrun/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateJobRun(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/emrcontainers/virtualcluster/zz_controller.go b/pkg/controller/emrcontainers/virtualcluster/zz_controller.go
index c6eeea4895..927ed2867d 100644
--- a/pkg/controller/emrcontainers/virtualcluster/zz_controller.go
+++ b/pkg/controller/emrcontainers/virtualcluster/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateVirtualCluster(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/globalaccelerator/accelerator/zz_controller.go b/pkg/controller/globalaccelerator/accelerator/zz_controller.go
index e99510bf88..fb6398ebfd 100644
--- a/pkg/controller/globalaccelerator/accelerator/zz_controller.go
+++ b/pkg/controller/globalaccelerator/accelerator/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateAccelerator(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/globalaccelerator/endpointgroup/zz_controller.go b/pkg/controller/globalaccelerator/endpointgroup/zz_controller.go
index b5f0ceb738..58a640e0ce 100644
--- a/pkg/controller/globalaccelerator/endpointgroup/zz_controller.go
+++ b/pkg/controller/globalaccelerator/endpointgroup/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateEndpointGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/globalaccelerator/listener/zz_controller.go b/pkg/controller/globalaccelerator/listener/zz_controller.go
index aaa1627e74..416357ae92 100644
--- a/pkg/controller/globalaccelerator/listener/zz_controller.go
+++ b/pkg/controller/globalaccelerator/listener/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateListener(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/glue/classifier/zz_controller.go b/pkg/controller/glue/classifier/zz_controller.go
index 0188670a1b..0864a62738 100644
--- a/pkg/controller/glue/classifier/zz_controller.go
+++ b/pkg/controller/glue/classifier/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateClassifier(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/glue/connection/zz_controller.go b/pkg/controller/glue/connection/zz_controller.go
index 75b71cc7f6..23d830deb8 100644
--- a/pkg/controller/glue/connection/zz_controller.go
+++ b/pkg/controller/glue/connection/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateConnection(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/glue/crawler/zz_controller.go b/pkg/controller/glue/crawler/zz_controller.go
index 690a72cd32..d175ecde64 100644
--- a/pkg/controller/glue/crawler/zz_controller.go
+++ b/pkg/controller/glue/crawler/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateCrawler(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/glue/database/zz_controller.go b/pkg/controller/glue/database/zz_controller.go
index 498180c7ad..ee22e7d91c 100644
--- a/pkg/controller/glue/database/zz_controller.go
+++ b/pkg/controller/glue/database/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDatabase(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/glue/job/zz_controller.go b/pkg/controller/glue/job/zz_controller.go
index 7c844390b3..b3c474e13c 100644
--- a/pkg/controller/glue/job/zz_controller.go
+++ b/pkg/controller/glue/job/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateJob(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/glue/securityconfiguration/zz_controller.go b/pkg/controller/glue/securityconfiguration/zz_controller.go
index 7482045bbc..5aa65885a4 100644
--- a/pkg/controller/glue/securityconfiguration/zz_controller.go
+++ b/pkg/controller/glue/securityconfiguration/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateSecurityConfiguration(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/iam/instanceprofile/zz_controller.go b/pkg/controller/iam/instanceprofile/zz_controller.go
index 445fb7fa9e..8b33ed49ec 100644
--- a/pkg/controller/iam/instanceprofile/zz_controller.go
+++ b/pkg/controller/iam/instanceprofile/zz_controller.go
@@ -85,7 +85,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateInstanceProfile(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/iot/policy/zz_controller.go b/pkg/controller/iot/policy/zz_controller.go
index d5e76113fc..55ea4e4b00 100644
--- a/pkg/controller/iot/policy/zz_controller.go
+++ b/pkg/controller/iot/policy/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GeneratePolicy(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/iot/thing/zz_controller.go b/pkg/controller/iot/thing/zz_controller.go
index 31f4a30d11..80a086d79b 100644
--- a/pkg/controller/iot/thing/zz_controller.go
+++ b/pkg/controller/iot/thing/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateThing(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/kafka/cluster/zz_controller.go b/pkg/controller/kafka/cluster/zz_controller.go
index feeadeb87c..d82f328af7 100644
--- a/pkg/controller/kafka/cluster/zz_controller.go
+++ b/pkg/controller/kafka/cluster/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateCluster(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/kafka/configuration/zz_controller.go b/pkg/controller/kafka/configuration/zz_controller.go
index 7dac580a01..520b143b51 100644
--- a/pkg/controller/kafka/configuration/zz_controller.go
+++ b/pkg/controller/kafka/configuration/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateConfiguration(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/kinesis/stream/zz_controller.go b/pkg/controller/kinesis/stream/zz_controller.go
index b438196445..c253b10e2a 100644
--- a/pkg/controller/kinesis/stream/zz_controller.go
+++ b/pkg/controller/kinesis/stream/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateStream(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/kms/key/zz_controller.go b/pkg/controller/kms/key/zz_controller.go
index f3fed6447e..e9543c3299 100644
--- a/pkg/controller/kms/key/zz_controller.go
+++ b/pkg/controller/kms/key/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateKey(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/lambda/function/zz_controller.go b/pkg/controller/lambda/function/zz_controller.go
index d006c4fc62..79141ca1b6 100644
--- a/pkg/controller/lambda/function/zz_controller.go
+++ b/pkg/controller/lambda/function/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateFunction(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/lambda/functionurlconfig/zz_controller.go b/pkg/controller/lambda/functionurlconfig/zz_controller.go
index d3fca7c65b..3890a733b9 100644
--- a/pkg/controller/lambda/functionurlconfig/zz_controller.go
+++ b/pkg/controller/lambda/functionurlconfig/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateFunctionURLConfig(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/mq/broker/zz_controller.go b/pkg/controller/mq/broker/zz_controller.go
index 005c879d4d..d71bc3d78a 100644
--- a/pkg/controller/mq/broker/zz_controller.go
+++ b/pkg/controller/mq/broker/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateBroker(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/mq/user/zz_controller.go b/pkg/controller/mq/user/zz_controller.go
index 95b628bf94..23ff9e853c 100644
--- a/pkg/controller/mq/user/zz_controller.go
+++ b/pkg/controller/mq/user/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateUser(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/mwaa/environment/zz_controller.go b/pkg/controller/mwaa/environment/zz_controller.go
index 6337e25c60..f4fc684792 100644
--- a/pkg/controller/mwaa/environment/zz_controller.go
+++ b/pkg/controller/mwaa/environment/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateEnvironment(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/neptune/dbcluster/zz_controller.go b/pkg/controller/neptune/dbcluster/zz_controller.go
index d48831ff99..887fe5e5d3 100644
--- a/pkg/controller/neptune/dbcluster/zz_controller.go
+++ b/pkg/controller/neptune/dbcluster/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDBCluster(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/opensearchservice/domain/zz_controller.go b/pkg/controller/opensearchservice/domain/zz_controller.go
index a0a291b14b..c723654da3 100644
--- a/pkg/controller/opensearchservice/domain/zz_controller.go
+++ b/pkg/controller/opensearchservice/domain/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDomain(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/prometheusservice/alertmanagerdefinition/zz_controller.go b/pkg/controller/prometheusservice/alertmanagerdefinition/zz_controller.go
index 51a04f5d23..162676ca2b 100644
--- a/pkg/controller/prometheusservice/alertmanagerdefinition/zz_controller.go
+++ b/pkg/controller/prometheusservice/alertmanagerdefinition/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateAlertManagerDefinition(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/prometheusservice/rulegroupsnamespace/zz_controller.go b/pkg/controller/prometheusservice/rulegroupsnamespace/zz_controller.go
index ab8c7528a1..ff648f7c8a 100644
--- a/pkg/controller/prometheusservice/rulegroupsnamespace/zz_controller.go
+++ b/pkg/controller/prometheusservice/rulegroupsnamespace/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateRuleGroupsNamespace(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/prometheusservice/workspace/zz_controller.go b/pkg/controller/prometheusservice/workspace/zz_controller.go
index 0900fcddb2..b4498ac422 100644
--- a/pkg/controller/prometheusservice/workspace/zz_controller.go
+++ b/pkg/controller/prometheusservice/workspace/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateWorkspace(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/ram/resourceshare/zz_controller.go b/pkg/controller/ram/resourceshare/zz_controller.go
index ea8b3af312..4e93c68b57 100644
--- a/pkg/controller/ram/resourceshare/zz_controller.go
+++ b/pkg/controller/ram/resourceshare/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateResourceShare(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/rds/dbcluster/zz_controller.go b/pkg/controller/rds/dbcluster/zz_controller.go
index 3490a8f20a..57025e2e81 100644
--- a/pkg/controller/rds/dbcluster/zz_controller.go
+++ b/pkg/controller/rds/dbcluster/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDBCluster(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/rds/dbclusterparametergroup/zz_controller.go b/pkg/controller/rds/dbclusterparametergroup/zz_controller.go
index 0dd3ca5e54..866253e5b0 100644
--- a/pkg/controller/rds/dbclusterparametergroup/zz_controller.go
+++ b/pkg/controller/rds/dbclusterparametergroup/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDBClusterParameterGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/rds/dbinstance/zz_controller.go b/pkg/controller/rds/dbinstance/zz_controller.go
index 4eccb95524..4a4f1eb95a 100644
--- a/pkg/controller/rds/dbinstance/zz_controller.go
+++ b/pkg/controller/rds/dbinstance/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDBInstance(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/rds/dbparametergroup/zz_controller.go b/pkg/controller/rds/dbparametergroup/zz_controller.go
index 221a11277e..d0289dd861 100644
--- a/pkg/controller/rds/dbparametergroup/zz_controller.go
+++ b/pkg/controller/rds/dbparametergroup/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateDBParameterGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/rds/globalcluster/zz_controller.go b/pkg/controller/rds/globalcluster/zz_controller.go
index e8bbea135e..97b78a8ca9 100644
--- a/pkg/controller/rds/globalcluster/zz_controller.go
+++ b/pkg/controller/rds/globalcluster/zz_controller.go
@@ -92,7 +92,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateGlobalCluster(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/rds/optiongroup/zz_controller.go b/pkg/controller/rds/optiongroup/zz_controller.go
index 5dbac95a72..8027587131 100644
--- a/pkg/controller/rds/optiongroup/zz_controller.go
+++ b/pkg/controller/rds/optiongroup/zz_controller.go
@@ -93,7 +93,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateOptionGroup(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/route53resolver/resolverendpoint/zz_controller.go b/pkg/controller/route53resolver/resolverendpoint/zz_controller.go
index 315ad80d39..718b2dfadc 100644
--- a/pkg/controller/route53resolver/resolverendpoint/zz_controller.go
+++ b/pkg/controller/route53resolver/resolverendpoint/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateResolverEndpoint(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/route53resolver/resolverrule/zz_controller.go b/pkg/controller/route53resolver/resolverrule/zz_controller.go
index bbc0a27a84..4e4c55e43c 100644
--- a/pkg/controller/route53resolver/resolverrule/zz_controller.go
+++ b/pkg/controller/route53resolver/resolverrule/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateResolverRule(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/s3control/accesspoint/zz_controller.go b/pkg/controller/s3control/accesspoint/zz_controller.go
index 924db162f2..262cb67e48 100644
--- a/pkg/controller/s3control/accesspoint/zz_controller.go
+++ b/pkg/controller/s3control/accesspoint/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateAccessPoint(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/secretsmanager/secret/zz_controller.go b/pkg/controller/secretsmanager/secret/zz_controller.go
index 6e2269c700..78a9acde99 100644
--- a/pkg/controller/secretsmanager/secret/zz_controller.go
+++ b/pkg/controller/secretsmanager/secret/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateSecret(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/servicediscovery/service/zz_controller.go b/pkg/controller/servicediscovery/service/zz_controller.go
index 46ec0c5215..ef59f6dfdd 100644
--- a/pkg/controller/servicediscovery/service/zz_controller.go
+++ b/pkg/controller/servicediscovery/service/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateService(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/sesv2/configurationset/zz_controller.go b/pkg/controller/sesv2/configurationset/zz_controller.go
index eaff871adf..5c47e7f102 100644
--- a/pkg/controller/sesv2/configurationset/zz_controller.go
+++ b/pkg/controller/sesv2/configurationset/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateConfigurationSet(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/sesv2/emailidentity/zz_controller.go b/pkg/controller/sesv2/emailidentity/zz_controller.go
index 62c0a23f1e..05e813ea35 100644
--- a/pkg/controller/sesv2/emailidentity/zz_controller.go
+++ b/pkg/controller/sesv2/emailidentity/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateEmailIdentity(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/sesv2/emailtemplate/zz_controller.go b/pkg/controller/sesv2/emailtemplate/zz_controller.go
index e207237645..6e9521f3ad 100644
--- a/pkg/controller/sesv2/emailtemplate/zz_controller.go
+++ b/pkg/controller/sesv2/emailtemplate/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateEmailTemplate(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/sfn/activity/zz_controller.go b/pkg/controller/sfn/activity/zz_controller.go
index 7379f1015b..78b5796cd8 100644
--- a/pkg/controller/sfn/activity/zz_controller.go
+++ b/pkg/controller/sfn/activity/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateActivity(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/sfn/statemachine/zz_controller.go b/pkg/controller/sfn/statemachine/zz_controller.go
index 501df75f98..33840a5861 100644
--- a/pkg/controller/sfn/statemachine/zz_controller.go
+++ b/pkg/controller/sfn/statemachine/zz_controller.go
@@ -89,7 +89,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateStateMachine(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/transfer/server/zz_controller.go b/pkg/controller/transfer/server/zz_controller.go
index 6eac0ba0b8..42ec56f8ca 100644
--- a/pkg/controller/transfer/server/zz_controller.go
+++ b/pkg/controller/transfer/server/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateServer(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/pkg/controller/transfer/user/zz_controller.go b/pkg/controller/transfer/user/zz_controller.go
index 44858e3d11..7589dd85cd 100644
--- a/pkg/controller/transfer/user/zz_controller.go
+++ b/pkg/controller/transfer/user/zz_controller.go
@@ -88,7 +88,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	GenerateUser(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")
diff --git a/templates/crossplane/pkg/controller.go.tpl b/templates/crossplane/pkg/controller.go.tpl
index da53e79798..a772c97e24 100644
--- a/templates/crossplane/pkg/controller.go.tpl
+++ b/templates/crossplane/pkg/controller.go.tpl
@@ -104,7 +104,12 @@ func (e *external) Observe(ctx context.Context, mg cpresource.Managed) (managed.
 		return managed.ExternalObservation{}, errors.Wrap(err, "late-init failed")
 	}
 	Generate{{ .CRD.Names.Camel }}(resp).Status.AtProvider.DeepCopyInto(&cr.Status.AtProvider)
-
+	if meta.WasDeleted(cr) { // There is no need to run isUpToDate if the resource is deleted
+		return managed.ExternalObservation{
+			ResourceExists:   true,
+			ResourceUpToDate: true,
+		}, nil
+	}
 	upToDate, diff, err := e.isUpToDate(ctx, cr, resp)
 	if err != nil {
 		return managed.ExternalObservation{}, errors.Wrap(err, "isUpToDate check failed")