Skip to content

Conversation

@stephenway
Copy link
Contributor

  • Add retry logic for 422 'already_exists' errors in race conditions
  • Allow action to find and update existing releases instead of failing
  • Add test to verify race condition handling works correctly

closes: #616

…matrix workflows

- Add retry logic for 422 'already_exists' errors in race conditions
- Allow action to find and update existing releases instead of failing
- Add test to verify race condition handling works correctly
- Fixes regression that broke matrix workflows in v2.2.2+

Resolves: softprops#616
@stephenway stephenway marked this pull request as ready for review September 28, 2025 23:21
@chenrui333 chenrui333 added bug Something isn't working and removed feature labels Oct 3, 2025
@chenrui333 chenrui333 merged commit 7dc9b8a into softprops:master Oct 3, 2025
1 check passed
@chenrui333
Copy link
Collaborator

@stephenway thanks for putting up a fix. ❤️

@chenrui333
Copy link
Collaborator

released in v2.3.4

@stephenway stephenway deleted the fix-issue-616-race-condition branch October 6, 2025 15:20
mergify bot added a commit to robfrank/linklift that referenced this pull request Oct 7, 2025
Bumps the github-actions group with 3 updates: [graalvm/setup-graalvm](https://github.com/graalvm/setup-graalvm), [softprops/action-gh-release](https://github.com/softprops/action-gh-release) and [github/codeql-action](https://github.com/github/codeql-action).
Updates `graalvm/setup-graalvm` from 1.4.0 to 1.4.1
Commits

* [`2a24120`](graalvm/setup-graalvm@2a24120) Bump version to `1.4.1`.
* [`39a82c0`](graalvm/setup-graalvm@39a82c0) Update dist files.
* [`62b95e6`](graalvm/setup-graalvm@62b95e6) Drop redundant dependency on `@types/uuid`.
* [`a19d2ab`](graalvm/setup-graalvm@a19d2ab) Fix response data handling after dep update.
* [`319b506`](graalvm/setup-graalvm@319b506) Bump the npm-updates group across 1 directory with 13 updates
* See full diff in [compare view](graalvm/setup-graalvm@e140024...2a24120)
  
Updates `softprops/action-gh-release` from 2.3.3 to 2.3.4
Release notes

*Sourced from [softprops/action-gh-release's releases](https://github.com/softprops/action-gh-release/releases).*

> v2.3.4
> ------
>
> What's Changed
> --------------
>
> ### Bug fixes 🐛
>
> * fix(action): handle 422 already\_exists race condition by [`@​stephenway`](https://github.com/stephenway) in [softprops/action-gh-release#665](https://redirect.github.com/softprops/action-gh-release/pull/665)
>
> ### Other Changes 🔄
>
> * chore(deps): bump actions/setup-node from 4.4.0 to 5.0.0 in the github-actions group by [`@​dependabot`](https://github.com/dependabot)[bot] in [softprops/action-gh-release#656](https://redirect.github.com/softprops/action-gh-release/pull/656)
> * chore(deps): bump `@​types/node` from 20.19.11 to 20.19.13 in the npm group by [`@​dependabot`](https://github.com/dependabot)[bot] in [softprops/action-gh-release#655](https://redirect.github.com/softprops/action-gh-release/pull/655)
> * chore(deps): bump vite from 7.0.0 to 7.1.5 by [`@​dependabot`](https://github.com/dependabot)[bot] in [softprops/action-gh-release#657](https://redirect.github.com/softprops/action-gh-release/pull/657)
> * chore(deps): bump the npm group across 1 directory with 2 updates by [`@​dependabot`](https://github.com/dependabot)[bot] in [softprops/action-gh-release#662](https://redirect.github.com/softprops/action-gh-release/pull/662)
> * chore(deps): bump the npm group with 3 updates by [`@​dependabot`](https://github.com/dependabot)[bot] in [softprops/action-gh-release#666](https://redirect.github.com/softprops/action-gh-release/pull/666)
>
> **Full Changelog**: <softprops/action-gh-release@v2...v2.3.4>


Changelog

*Sourced from [softprops/action-gh-release's changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md).*

> 2.3.4
> -----
>
> What's Changed
> --------------
>
> ### Bug fixes 🐛
>
> * fix(action): handle 422 already\_exists race condition by [`@​stephenway`](https://github.com/stephenway) in [softprops/action-gh-release#665](https://redirect.github.com/softprops/action-gh-release/pull/665)
>
> ### Other Changes 🔄
>
> * dependency updates
>
> 2.3.3
> -----
>
> What's Changed
> --------------
>
> ### Exciting New Features 🎉
>
> * feat: add input option `overwrite_files` by [`@​asfernandes`](https://github.com/asfernandes) in [softprops/action-gh-release#343](https://redirect.github.com/softprops/action-gh-release/pull/343)
>
> ### Other Changes 🔄
>
> * dependency updates
>
> 2.3.2
> -----
>
> * fix: revert fs `readableWebStream` change
>
> 2.3.1
> -----
>
> ### Bug fixes 🐛
>
> * fix: fix file closing issue by [`@​WailGree`](https://github.com/WailGree) in [softprops/action-gh-release#629](https://redirect.github.com/softprops/action-gh-release/pull/629)
>
> 2.3.0
> -----
>
> * Migrate from jest to vitest
> * Replace `mime` with `mime-types`
> * Bump to use node 24
> * Dependency updates
>
> 2.2.2
> -----
>
> What's Changed
> --------------
>
> ### Bug fixes 🐛
>
> * fix: updating release draft status from true to false by [`@​galargh`](https://github.com/galargh) in [softprops/action-gh-release#316](https://redirect.github.com/softprops/action-gh-release/pull/316)
>
> ### Other Changes 🔄

... (truncated)


Commits

* [`62c96d0`](softprops/action-gh-release@62c96d0) release 2.3.4
* [`7dc9b8a`](softprops/action-gh-release@7dc9b8a) fix(action): handle 422 already\_exists race condition ([#665](https://redirect.github.com/softprops/action-gh-release/issues/665))
* [`0f0e0b9`](softprops/action-gh-release@0f0e0b9) chore(deps): bump the npm group with 3 updates ([#666](https://redirect.github.com/softprops/action-gh-release/issues/666))
* [`97d42c1`](softprops/action-gh-release@97d42c1) chore(deps): bump the npm group across 1 directory with 2 updates ([#662](https://redirect.github.com/softprops/action-gh-release/issues/662))
* [`19cd0bc`](softprops/action-gh-release@19cd0bc) chore(deps): bump vite from 7.0.0 to 7.1.5 ([#657](https://redirect.github.com/softprops/action-gh-release/issues/657))
* [`5d1b0b1`](softprops/action-gh-release@5d1b0b1) chore(deps): bump `@​types/node` from 20.19.11 to 20.19.13 in the npm group ([#655](https://redirect.github.com/softprops/action-gh-release/issues/655))
* [`f6021cf`](softprops/action-gh-release@f6021cf) chore(deps): bump actions/setup-node in the github-actions group ([#656](https://redirect.github.com/softprops/action-gh-release/issues/656))
* See full diff in [compare view](softprops/action-gh-release@6cbd405...62c96d0)
  
Updates `github/codeql-action` from 3.30.5 to 3.30.6
Release notes

*Sourced from [github/codeql-action's releases](https://github.com/github/codeql-action/releases).*

> v3.30.6
> -------
>
> CodeQL Action Changelog
> =======================
>
> See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs.
>
> 3.30.6 - 02 Oct 2025
> --------------------
>
> * Update default CodeQL bundle version to 2.23.2. [#3168](https://redirect.github.com/github/codeql-action/pull/3168)
>
> See the full [CHANGELOG.md](https://github.com/github/codeql-action/blob/v3.30.6/CHANGELOG.md) for more information.


Changelog

*Sourced from [github/codeql-action's changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md).*

> CodeQL Action Changelog
> =======================
>
> See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs.
>
> [UNRELEASED]
> ------------
>
> No user facing changes.
>
> 3.30.6 - 02 Oct 2025
> --------------------
>
> * Update default CodeQL bundle version to 2.23.2. [#3168](https://redirect.github.com/github/codeql-action/pull/3168)
>
> 3.30.5 - 26 Sep 2025
> --------------------
>
> * We fixed a bug that was introduced in `3.30.4` with `upload-sarif` which resulted in files without a `.sarif` extension not getting uploaded. [#3160](https://redirect.github.com/github/codeql-action/pull/3160)
>
> 3.30.4 - 25 Sep 2025
> --------------------
>
> * We have improved the CodeQL Action's ability to validate that the workflow it is used in does not use different versions of the CodeQL Action for different workflow steps. Mixing different versions of the CodeQL Action in the same workflow is unsupported and can lead to unpredictable results. A warning will now be emitted from the `codeql-action/init` step if different versions of the CodeQL Action are detected in the workflow file. Additionally, an error will now be thrown by the other CodeQL Action steps if they load a configuration file that was generated by a different version of the `codeql-action/init` step. [#3099](https://redirect.github.com/github/codeql-action/pull/3099) and [#3100](https://redirect.github.com/github/codeql-action/pull/3100)
> * We added support for reducing the size of dependency caches for Java analyses, which will reduce cache usage and speed up workflows. This will be enabled automatically at a later time. [#3107](https://redirect.github.com/github/codeql-action/pull/3107)
> * You can now run the latest CodeQL nightly bundle by passing `tools: nightly` to the `init` action. In general, the nightly bundle is unstable and we only recommend running it when directed by GitHub staff. [#3130](https://redirect.github.com/github/codeql-action/pull/3130)
> * Update default CodeQL bundle version to 2.23.1. [#3118](https://redirect.github.com/github/codeql-action/pull/3118)
>
> 3.30.3 - 10 Sep 2025
> --------------------
>
> No user facing changes.
>
> 3.30.2 - 09 Sep 2025
> --------------------
>
> * Fixed a bug which could cause language autodetection to fail. [#3084](https://redirect.github.com/github/codeql-action/pull/3084)
> * Experimental: The `quality-queries` input that was added in `3.29.2` as part of an internal experiment is now deprecated and will be removed in an upcoming version of the CodeQL Action. It has been superseded by a new `analysis-kinds` input, which is part of the same internal experiment. Do not use this in production as it is subject to change at any time. [#3064](https://redirect.github.com/github/codeql-action/pull/3064)
>
> 3.30.1 - 05 Sep 2025
> --------------------
>
> * Update default CodeQL bundle version to 2.23.0. [#3077](https://redirect.github.com/github/codeql-action/pull/3077)
>
> 3.30.0 - 01 Sep 2025
> --------------------
>
> * Reduce the size of the CodeQL Action, speeding up workflows by approximately 4 seconds. [#3054](https://redirect.github.com/github/codeql-action/pull/3054)
>
> 3.29.11 - 21 Aug 2025
> ---------------------
>
> * Update default CodeQL bundle version to 2.22.4. [#3044](https://redirect.github.com/github/codeql-action/pull/3044)
>
> 3.29.10 - 18 Aug 2025
> ---------------------
>
> No user facing changes.
>
> 3.29.9 - 12 Aug 2025
> --------------------

... (truncated)


Commits

* [`64d10c1`](github/codeql-action@64d10c1) Merge pull request [#3172](https://redirect.github.com/github/codeql-action/issues/3172) from github/update-v3.30.6-10feb5d2a
* [`909610e`](github/codeql-action@909610e) Update changelog for v3.30.6
* [`10feb5d`](github/codeql-action@10feb5d) Merge pull request [#3167](https://redirect.github.com/github/codeql-action/issues/3167) from github/mbg/upload-sarif/find-then-filter
* [`4182ea3`](github/codeql-action@4182ea3) Merge pull request [#3168](https://redirect.github.com/github/codeql-action/issues/3168) from github/update-bundle/codeql-bundle-v2.23.2
* [`34afe5b`](github/codeql-action@34afe5b) Merge pull request [#3171](https://redirect.github.com/github/codeql-action/issues/3171) from github/mbg/start-proxy/telemetry
* [`096fe67`](github/codeql-action@096fe67) Merge branch 'main' into update-bundle/codeql-bundle-v2.23.2
* [`b496401`](github/codeql-action@b496401) Merge pull request [#3170](https://redirect.github.com/github/codeql-action/issues/3170) from github/mbg/start-proxy/remove-update-workflow
* [`d573787`](github/codeql-action@d573787) Report registry types that are configured for CodeQL in `start-proxy` telemetry
* [`1591680`](github/codeql-action@1591680) Send a basic status report in `start-proxy` Action if it succeeds
* [`cb5a284`](github/codeql-action@cb5a284) Send status report when `start-proxy` fails
* Additional commits viewable in [compare view](github/codeql-action@3599b3b...64d10c1)
  
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore  major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore  minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore  ` will remove the ignore condition of the specified dependency and ignore conditions
mergify bot added a commit to robfrank/linklift that referenced this pull request Oct 15, 2025
Bumps the github-actions group with 2 updates: [softprops/action-gh-release](https://github.com/softprops/action-gh-release) and [ruby/setup-ruby](https://github.com/ruby/setup-ruby).
Updates `softprops/action-gh-release` from 2.3.4 to 2.4.1
Release notes

*Sourced from [softprops/action-gh-release's releases](https://github.com/softprops/action-gh-release/releases).*

> v2.4.1
> ------
>
> What's Changed
> --------------
>
> ### Other Changes 🔄
>
> * fix(util): support brace expansion globs containing commas in parseInputFiles by [`@​Copilot`](https://github.com/Copilot) in [softprops/action-gh-release#672](https://redirect.github.com/softprops/action-gh-release/pull/672)
> * fix: gracefully fallback to body when body\_path cannot be read by [`@​Copilot`](https://github.com/Copilot) in [softprops/action-gh-release#671](https://redirect.github.com/softprops/action-gh-release/pull/671)
>
> **Full Changelog**: <softprops/action-gh-release@v2...v2.4.1>
>
> v2.4.0
> ------
>
> What's Changed
> --------------
>
> ### Exciting New Features 🎉
>
> * feat(action): respect working\_directory for files globs by [`@​stephenway`](https://github.com/stephenway) in [softprops/action-gh-release#667](https://redirect.github.com/softprops/action-gh-release/pull/667)
>
> ### Other Changes 🔄
>
> * chore(deps): bump the npm group with 2 updates by [`@​dependabot`](https://github.com/dependabot)[bot] in [softprops/action-gh-release#668](https://redirect.github.com/softprops/action-gh-release/pull/668)
>
> **Full Changelog**: <softprops/action-gh-release@v2.3.4...v2.4.0>


Changelog

*Sourced from [softprops/action-gh-release's changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md).*

> 2.4.1
> -----
>
> What's Changed
> --------------
>
> ### Other Changes 🔄
>
> * fix(util): support brace expansion globs containing commas in parseInputFiles by [`@​Copilot`](https://github.com/Copilot) in [softprops/action-gh-release#672](https://redirect.github.com/softprops/action-gh-release/pull/672)
> * fix: gracefully fallback to body when body\_path cannot be read by [`@​Copilot`](https://github.com/Copilot) in [softprops/action-gh-release#671](https://redirect.github.com/softprops/action-gh-release/pull/671)
>
> 2.4.0
> -----
>
> What's Changed
> --------------
>
> ### Exciting New Features 🎉
>
> * feat(action): respect working\_directory for files globs by [`@​stephenway`](https://github.com/stephenway) in [softprops/action-gh-release#667](https://redirect.github.com/softprops/action-gh-release/pull/667)
>
> 2.3.4
> -----
>
> What's Changed
> --------------
>
> ### Bug fixes 🐛
>
> * fix(action): handle 422 already\_exists race condition by [`@​stephenway`](https://github.com/stephenway) in [softprops/action-gh-release#665](https://redirect.github.com/softprops/action-gh-release/pull/665)
>
> ### Other Changes 🔄
>
> * dependency updates
>
> 2.3.3
> -----
>
> What's Changed
> --------------
>
> ### Exciting New Features 🎉
>
> * feat: add input option `overwrite_files` by [`@​asfernandes`](https://github.com/asfernandes) in [softprops/action-gh-release#343](https://redirect.github.com/softprops/action-gh-release/pull/343)
>
> ### Other Changes 🔄
>
> * dependency updates
>
> 2.3.2
> -----
>
> * fix: revert fs `readableWebStream` change
>
> 2.3.1
> -----
>
> ### Bug fixes 🐛
>
> * fix: fix file closing issue by [`@​WailGree`](https://github.com/WailGree) in [softprops/action-gh-release#629](https://redirect.github.com/softprops/action-gh-release/pull/629)

... (truncated)


Commits

* [`6da8fa9`](softprops/action-gh-release@6da8fa9) release 2.4.1
* [`f38efde`](softprops/action-gh-release@f38efde) fix: gracefully fallback to body when body\_path cannot be read ([#671](https://redirect.github.com/softprops/action-gh-release/issues/671))
* [`cec1a11`](softprops/action-gh-release@cec1a11) fix(util): support brace expansion globs containing commas in parseInputFiles...
* [`aec2ec5`](softprops/action-gh-release@aec2ec5) release 2.4.0
* [`4db716b`](softprops/action-gh-release@4db716b) feat: respect working\_directory for files globs; add input and tests ([#667](https://redirect.github.com/softprops/action-gh-release/issues/667))
* [`14820f2`](softprops/action-gh-release@14820f2) chore(deps): bump the npm group with 2 updates ([#668](https://redirect.github.com/softprops/action-gh-release/issues/668))
* See full diff in [compare view](softprops/action-gh-release@62c96d0...6da8fa9)
  
Updates `ruby/setup-ruby` from 1.263.0 to 1.265.0
Release notes

*Sourced from [ruby/setup-ruby's releases](https://github.com/ruby/setup-ruby/releases).*

> v1.265.0
> --------
>
> What's Changed
> --------------
>
> * Update CRuby releases on Windows by [`@​ruby-builder-bot`](https://github.com/ruby-builder-bot) in [ruby/setup-ruby#817](https://redirect.github.com/ruby/setup-ruby/pull/817)
>
> **Full Changelog**: <ruby/setup-ruby@v1.264.0...v1.265.0>
>
> v1.264.0
> --------
>
> What's Changed
> --------------
>
> * Add ruby-3.4.7 by [`@​ruby-builder-bot`](https://github.com/ruby-builder-bot) in [ruby/setup-ruby#815](https://redirect.github.com/ruby/setup-ruby/pull/815)
>
> **Full Changelog**: <ruby/setup-ruby@v1.263.0...v1.264.0>


Commits

* [`ab177d4`](ruby/setup-ruby@ab177d4) Update CRuby releases on Windows
* [`6797dcb`](ruby/setup-ruby@6797dcb) Add ruby-3.4.7
* [`a16e0e6`](ruby/setup-ruby@a16e0e6) Test on macos-15-intel too
* See full diff in [compare view](ruby/setup-ruby@0481980...ab177d4)
  
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore  major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore  minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore  ` will remove the ignore condition of the specified dependency and ignore conditions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Getting 422 "already_exists" error on 2.2.2

2 participants