From bec9f003c1be53be9ca878b88ebd4721780459c1 Mon Sep 17 00:00:00 2001 From: Johannes Engler Date: Wed, 12 Aug 2026 11:49:03 +0200 Subject: [PATCH] fix(redis, rabbitmq): pass region and instance ID in the correct order on update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PartialUpdateInstance in the redis and rabbitmq SDKs is declared as (ctx, projectId, regionId, instanceId), but both resources called it as (ctx, projectId, instanceId, region). Both parameters are strings, so the transposition compiles cleanly and only surfaces at runtime: the instance UUID is interpolated into the {regionId} path segment, and the API rejects the request with status code 400, Body: Bad Request: Invalid region specified. Every other call in the same two files — including the PartialUpdateInstanceWaitHandler a few lines below the defect — already passes (projectId, region, instanceId). This makes every in-place update of stackit_redis_instance and stackit_rabbitmq_instance fail, not only changes to `parameters`. The other services calling PartialUpdateInstance were checked against their own SDK signatures and are correct: logme, mariadb, opensearch, postgresflex and sqlserverflex take (projectId, region, instanceId), while mongodbflex's SDK genuinely declares (projectId, instanceId, region) and is called accordingly. relates to #1677 --- stackit/internal/services/rabbitmq/instance/resource.go | 2 +- stackit/internal/services/redis/instance/resource.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/stackit/internal/services/rabbitmq/instance/resource.go b/stackit/internal/services/rabbitmq/instance/resource.go index bf98d609d..32941ed58 100644 --- a/stackit/internal/services/rabbitmq/instance/resource.go +++ b/stackit/internal/services/rabbitmq/instance/resource.go @@ -517,7 +517,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques return } // Update existing instance - err = r.client.DefaultAPI.PartialUpdateInstance(ctx, projectId, instanceId, region).PartialUpdateInstancePayload(*payload).Execute() + err = r.client.DefaultAPI.PartialUpdateInstance(ctx, projectId, region, instanceId).PartialUpdateInstancePayload(*payload).Execute() if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Calling API: %v", err)) return diff --git a/stackit/internal/services/redis/instance/resource.go b/stackit/internal/services/redis/instance/resource.go index 4982d8d1f..3926b296b 100644 --- a/stackit/internal/services/redis/instance/resource.go +++ b/stackit/internal/services/redis/instance/resource.go @@ -586,7 +586,7 @@ func (r *instanceResource) Update(ctx context.Context, req resource.UpdateReques return } // Update existing instance - err = r.client.DefaultAPI.PartialUpdateInstance(ctx, projectId, instanceId, region).PartialUpdateInstancePayload(*payload).Execute() + err = r.client.DefaultAPI.PartialUpdateInstance(ctx, projectId, region, instanceId).PartialUpdateInstancePayload(*payload).Execute() if err != nil { core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating instance", fmt.Sprintf("Calling API: %v", err)) return