From fa4c3574b6bdd4a15e5b8094eef1f68b3c3b10a8 Mon Sep 17 00:00:00 2001 From: Alexander Dahmen Date: Thu, 20 Aug 2026 11:28:31 +0200 Subject: [PATCH] fix(secretmanager): The backend responds with a 403 instead of a 404 if a resource is not present anymore Signed-off-by: Alexander Dahmen --- stackit/internal/services/secretsmanager/instance/resource.go | 4 ++-- stackit/internal/services/secretsmanager/user/resource.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/stackit/internal/services/secretsmanager/instance/resource.go b/stackit/internal/services/secretsmanager/instance/resource.go index 04c518cdc..48c1380f5 100644 --- a/stackit/internal/services/secretsmanager/instance/resource.go +++ b/stackit/internal/services/secretsmanager/instance/resource.go @@ -275,7 +275,7 @@ func (r *instanceResource) Read(ctx context.Context, req resource.ReadRequest, r instanceResp, err := r.client.DefaultAPI.GetInstance(ctx, projectId, instanceId).Execute() if err != nil { var oapiErr *oapierror.GenericOpenAPIError - if errors.As(err, &oapiErr) && oapiErr.StatusCode == http.StatusNotFound { + if errors.As(err, &oapiErr) && oapiErr.StatusCode == http.StatusForbidden { resp.State.RemoveResource(ctx) return } @@ -404,7 +404,7 @@ func (r *instanceResource) Delete(ctx context.Context, req resource.DeleteReques err := r.client.DefaultAPI.DeleteInstance(ctx, projectId, instanceId).Execute() if err != nil { var oapiErr *oapierror.GenericOpenAPIError - if errors.As(err, &oapiErr) && oapiErr.StatusCode == http.StatusNotFound { + if errors.As(err, &oapiErr) && oapiErr.StatusCode == http.StatusForbidden { resp.State.RemoveResource(ctx) return } diff --git a/stackit/internal/services/secretsmanager/user/resource.go b/stackit/internal/services/secretsmanager/user/resource.go index 32268b56a..7de1c3d4b 100644 --- a/stackit/internal/services/secretsmanager/user/resource.go +++ b/stackit/internal/services/secretsmanager/user/resource.go @@ -254,7 +254,7 @@ func (r *userResource) Read(ctx context.Context, req resource.ReadRequest, resp userResp, err := r.client.DefaultAPI.GetUser(ctx, projectId, instanceId, userId).Execute() if err != nil { var oapiErr *oapierror.GenericOpenAPIError - if errors.As(err, &oapiErr) && oapiErr.StatusCode == http.StatusNotFound { + if errors.As(err, &oapiErr) && oapiErr.StatusCode == http.StatusForbidden { resp.State.RemoveResource(ctx) return } @@ -362,7 +362,7 @@ func (r *userResource) Delete(ctx context.Context, req resource.DeleteRequest, r err := r.client.DefaultAPI.DeleteUser(ctx, projectId, instanceId, userId).Execute() if err != nil { var oapiErr *oapierror.GenericOpenAPIError - if errors.As(err, &oapiErr) && oapiErr.StatusCode == http.StatusNotFound { + if errors.As(err, &oapiErr) && oapiErr.StatusCode == http.StatusForbidden { return } core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting user", fmt.Sprintf("Calling API: %v", err))