apiops icon indicating copy to clipboard operation
apiops copied to clipboard

[BUG] The API entered an inconsistent state due to an error when setting the current revision.

Open ehalas opened this issue 7 months ago • 4 comments

Release version

v6.0.1.4

Describe the bug

In the attempt to set the revision as current, after the error occurred, the API entered an inconsistent state, losing the version. Consequently, all subsequent attempts to adjust the version failed, as the API became an ‘original’ API, preventing us from creating a v3 or deploying an API with the same name.

the erro that caused the issue:

`info: publisher[0]

  Changing current revision on ***center-v3 from 4 to 5...

info: publisher[0]

  Putting API ***center-v3...

##[debug]Agent environment resources - Disk: / Available 276932.38 MB out of 347161.04 MB, Memory: Used 1552.00 MB out of 7929.00 MB, CPU: Usage 62.03%

info: publisher[0]

  Putting API release apiops-set-current in API ***center-v3...

info: publisher[0]

  Deleting API release apiops-set-current from API ***center-v3...

crit: publisher[0]

  Application failed.

  System.Net.Http.HttpRequestException: HTTP request to URI https://management.azure.com/subscription/***/resourceGroups/***/providers/Microsoft.ApiManagement/service/***/apis/***center-v3/releases/apiops-set-current?api-version=2023-09-01-preview failed with status code 409. Content is '{"error":{"code":"ScopeLocked","message":"The scope '/subscriptions/***/resourceGroups/***/providers/Microsoft.ApiManagement/service/***/apis/***center-v3/releases/apiops-set-current' cannot perform delete operation because following scope(s) are locked: '/subscriptions/***/resourceGroups/***'. Please remove the lock and try again."}}'.

`

after that error the api lost the "v3"(***-center/v3) and become just ***-center

Image

Expected behavior

It should revert the changes made in the steps prior to the error and also should not update the revision to one that didn't have any version in the base path.

Actual behavior

Since the incidente, all the versions conflict with the ***-center v3, once the base path is ***-center and not ***-center/v3. PS: it's part of the same version set.

##[error]System.Net.Http.HttpRequestException: HTTP request to URI https://management.azure.com/subscriptions/***/resourceGroups/***-rg/providers/Microsoft.ApiManagement/service/***/apis/***center-v1;rev=6?api-version=2023-09-01-preview failed with status code 400. Content is '{"error":{"code":"ValidationError","message":"One or more fields contain incorrect values:","details":[{"code":"ValidationError","target":"path","message":"Cannot create API '***center-v1' with the same Path '***-center' as API '***center-v3'  unless it's a part of the same version set"}]}}'.

Reproduction Steps

Set the resource group to ScopeLocked for deletion in Azure APIM; after the error, the API lost the version from the base path.

ehalas avatar Jun 01 '25 23:06 ehalas

  Thank you for opening this issue! Please be patient while we will look into it and get back to you as this is an open source project. In the meantime make sure you take a look at the [closed issues](https://github.com/Azure/apiops/issues?q=is%3Aissue+is%3Aclosed) in case your question has already been answered. Don't forget to provide any additional information if needed (e.g. scrubbed logs, detailed feature requests,etc.).
  Whenever it's feasible, please don't hesitate to send a Pull Request (PR) our way. We'd greatly appreciate it, and we'll gladly assess and incorporate your changes.

github-actions[bot] avatar Jun 01 '25 23:06 github-actions[bot]

@waelkdouh and @guythetechie while I wasn't able to reproduce this exact issue, there are definitely some issues around revisions that need some attention. Here is the error that I got just trying to make a new revision current.

Image

anotherRedbeard avatar Aug 31 '25 13:08 anotherRedbeard

Thanks for validating, @anotherRedbeard. I'm updating the revision logic in our next release.

guythetechie avatar Sep 02 '25 13:09 guythetechie

@anotherRedbeard - pushed the next alpha release in the v7 branch. When you have a moment, would you please test revisions with that coe? The branch is not feature-complete, so things like specifications won't be extracted yet. Just want to make sure the revision logic is solid.

guythetechie avatar Sep 10 '25 18:09 guythetechie