From 20e9b3ca4c091bf9b3544a87c646cdeea0017e4a Mon Sep 17 00:00:00 2001 From: "Marcel S. Henselin" Date: Mon, 16 Feb 2026 09:20:36 +0000 Subject: [PATCH] fix: #66 non generic api error handling (#67) ## Description relates to #1234 ## Checklist - [ ] Issue was linked above - [ ] Code format was applied: `make fmt` - [ ] Examples were added / adjusted (see `examples/` directory) - [x] Docs are up-to-date: `make generate-docs` (will be checked by CI) - [ ] Unit tests got implemented or updated - [ ] Acceptance tests got implemented or updated (see e.g. [here](https://github.com/stackitcloud/terraform-provider-stackit/blob/f5f99d170996b208672ae684b6da53420e369563/stackit/internal/services/dns/dns_acc_test.go)) - [x] Unit tests are passing: `make test` (will be checked by CI) - [x] No linter issues: `make lint` (will be checked by CI) Reviewed-on: https://tf-provider.git.onstackit.cloud/stackit-dev-tools/terraform-provider-stackitprivatepreview/pulls/67 Co-authored-by: Marcel S. Henselin Co-committed-by: Marcel S. Henselin --- stackit/internal/wait/sqlserverflexbeta/wait.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/stackit/internal/wait/sqlserverflexbeta/wait.go b/stackit/internal/wait/sqlserverflexbeta/wait.go index 60b1d74b..d898b47a 100644 --- a/stackit/internal/wait/sqlserverflexbeta/wait.go +++ b/stackit/internal/wait/sqlserverflexbeta/wait.go @@ -85,7 +85,17 @@ func CreateInstanceWaitHandler( func() (waitFinished bool, response *sqlserverflex.GetInstanceResponse, err error) { s, err := a.GetInstanceRequestExecute(ctx, projectId, region, instanceId) if err != nil { - return false, nil, err + var oapiErr *oapierror.GenericOpenAPIError + ok := errors.As(err, &oapiErr) + if !ok { + return false, nil, fmt.Errorf("could not convert error to oapierror.GenericOpenAPIError: %w", err) + } + switch oapiErr.StatusCode { + case http.StatusNotFound: + return false, nil, nil + default: + return false, nil, fmt.Errorf("api error: %w", err) + } } if s == nil || s.Id == nil || *s.Id != instanceId || s.Status == nil { return false, nil, nil