Symptom
After the Fallout.GlobalTool → Fallout.Cli rename (#206) merged, the release.yml run for that commit (26483553336) failed at the publish step:
error: Response status code does not indicate success: 403
(The specified API key is invalid, has expired, or does not have permission
to access the specified package.).
Specifically on the push of Fallout.Cli.10.3.41.nupkg. Other Fallout.* package pushes in the same run did not fail (they're idempotent via --skip-duplicate, but they also have the right ownership).
Root cause
The first manual web upload of Fallout.Cli.10.3.39-g7885ec5647.nupkg (done pre-merge to satisfy the prefix-reservation gotcha) landed on nuget.org under the personal account, not the org that owns the API key used by release.yml. Result: package ID is reserved, but the org doesn't have push permission for it, so the CI key 403s on subsequent pushes.
This is a known operational footgun of nuget.org's manual-upload flow: the "Package owner" field defaults to the uploading user's profile, not whichever org their API key belongs to. There's no UI prompt to switch ownership at upload time — it requires a follow-up transfer.
Mitigation in progress
nuget.org support has been contacted to transfer ownership of Fallout.Cli to the org.
What to do once support transfers ownership
gh run rerun <release-run-id> --failed on the latest release.yml run for main, OR push any non-docs commit to main to retrigger.
--skip-duplicate means previously-published Fallout.*.10.3.41.nupkgs won't re-push or error; only the missing Fallout.Cli.10.3.41.nupkg push gets retried.
- Verify Fallout.Cli appears on nuget.org under the org's account with
10.3.41 listed.
Lesson for next time
When manually web-uploading the FIRST version of a new Fallout.* package (the prefix-reservation gotcha workflow):
- After upload, explicitly transfer ownership to the org via
Manage Package → Owners → Add owner → <org name> (then optionally remove personal account).
- OR: upload using credentials of the org's service account directly (avoids the transfer step but requires having such credentials handy).
- Verify on the package page that the listed owner is the org before the next CI push attempt.
Worth adding a one-liner to the existing prefix-gotcha note in docs/dependencies.md or wherever the gotcha is documented.
Refs
Symptom
After the Fallout.GlobalTool → Fallout.Cli rename (#206) merged, the
release.ymlrun for that commit (26483553336) failed at the publish step:Specifically on the push of
Fallout.Cli.10.3.41.nupkg. OtherFallout.*package pushes in the same run did not fail (they're idempotent via--skip-duplicate, but they also have the right ownership).Root cause
The first manual web upload of
Fallout.Cli.10.3.39-g7885ec5647.nupkg(done pre-merge to satisfy the prefix-reservation gotcha) landed on nuget.org under the personal account, not the org that owns the API key used byrelease.yml. Result: package ID is reserved, but the org doesn't have push permission for it, so the CI key 403s on subsequent pushes.This is a known operational footgun of nuget.org's manual-upload flow: the "Package owner" field defaults to the uploading user's profile, not whichever org their API key belongs to. There's no UI prompt to switch ownership at upload time — it requires a follow-up transfer.
Mitigation in progress
nuget.org support has been contacted to transfer ownership of
Fallout.Clito the org.What to do once support transfers ownership
gh run rerun <release-run-id> --failedon the latest release.yml run for main, OR push any non-docs commit to main to retrigger.--skip-duplicatemeans previously-publishedFallout.*.10.3.41.nupkgs won't re-push or error; only the missingFallout.Cli.10.3.41.nupkgpush gets retried.10.3.41listed.Lesson for next time
When manually web-uploading the FIRST version of a new
Fallout.*package (the prefix-reservation gotcha workflow):Manage Package → Owners → Add owner → <org name>(then optionally remove personal account).Worth adding a one-liner to the existing prefix-gotcha note in
docs/dependencies.mdor wherever the gotcha is documented.Refs