Repository navigation
Description
Problem
The v5.0.0 release built and tagged fine, but neither registry received it. As of 2026-10-12 23:45 UTC, socket-patch-core@5.0.0 on crates.io and @socketsecurity/socket-patch@5.0.0 on npm both return 404.
- Release run: https://github.com/SocketDev/socket-patch/actions/runs/38310343691. Its
cargo-publishandnpm-publishfan-out legs failed. - crates.io leg: https://github.com/SocketDev/socket-patch/actions/runs/38311838804, step
Authenticate with crates.io:Failed to retrieve token from Cargo registry. Status: 400. Error: The Trusted Publishing config for repository
SocketDev/socket-patchdoes not match the workflow filenamepublish-cargo.ymlin the JWT. Expected workflow filenames:release.yml,release.yml - npm leg: https://github.com/SocketDev/socket-patch/actions/runs/38311868646, step
Stage-publish platform packages, on the first package (@socketsecurity/socket-patch-android-arm64):npm error code E401 Unable to authenticate, your authentication token seems to be invalid.
Root cause
release.yml now runs each publish as its own workflow (publish-cargo.yml, publish-npm.yml) through scripts/dispatch-publish.sh. The workflow headers say every registry's trusted publisher is keyed on those filenames. The registry-side trusted-publisher configs were never updated, so crates.io still expects release.yml. npm's OIDC exchange fails the same way and falls back to the placeholder token, which gives the E401.
Fix (needs a registry admin; it can't be done from the repo)
- On crates.io, open the Trusted Publishing settings for
socket-patch-coreandsocket-patch-cli. Add (or change to) repoSocketDev/socket-patchwith workflowpublish-cargo.yml. - On npmjs.com, change the trusted publisher to workflow
publish-npm.ymlfor@socketsecurity/socket-patchand every@socketsecurity/socket-patch-*platform package. - Dispatch
publish-cargo.ymlandpublish-npm.ymlwithversion=5.0.0. They reuse the v5.0.0 GitHub release assets, so nothing is rebuilt. Then approve the npm staged versions.
Filed by the hourly CI janitor routine.
🤖 Generated with Claude Code
Generated by Claude Code
Activity
mikolalysenko commentedon Oct 12, 2026
[agent] Triaged (CI lane). Confirmed on origin/main@15c2c83:
release.ymlhands publishing to.github/workflows/publish-cargo.yml/publish-npm.ymlviascripts/dispatch-publish.sh, so the OIDC JWT carries the new filenames. The fix is registry-side trusted-publisher config plus a manual publish dispatch, which agents must not do (release/publish workflows and registry settings are off-limits). Labelledagent:needs-human,priority:p1because v5.0.0 is tagged but unpublished on both registries.Generated by Claude Code
mikolalysenko commentedon Oct 13, 2026
Update from the 2026-10-13 16:40 UTC CI janitor run: #1485 moved the npm leg back into
release.yml, but the 5.0.1 release still didn't publish@socketsecurity/socket-patch.tag,github-releaseandcargo-publishsucceeded.npm-publishfailed (job 115390986463).@socketsecurity/socket-patch-*platform package staged at 5.0.1 from the same job with the same OIDC setup. The last one waswin32-x64, staged with id39821f25-….Stage-publish main package(npm stage publish ./npm/socket-patch) then failed with:npm/socket-patch/package.jsonhas the samepublishConfigandrepositoryas the platform packages. So the OIDC exchange fails only for the main package, which points to that one package's trusted-publisher entry on npmjs.com. It probably still namespublish-npm.yml(it may have been changed for 5.0.0) or another environment, while the platform packages namerelease.yml.latestfor@socketsecurity/socket-patchis still4.0.0.Needs a human (registry admin):
@socketsecurity/socket-patchto repoSocketDev/socket-patch, workflowrelease.yml, with no environment, matching the platform packages.release.ymlwithnpm-retry-version=5.0.1. The main-package step accepts already-staged platform packages.Generated by Claude Code
mikolalysenko commentedon Oct 13, 2026
Update from the 2026-10-13 19:40 UTC CI janitor run: 5.0.1 is still not on npm (
npm view @socketsecurity/socket-patch versionsends at4.0.0; 5.0.0 isn't there either). Two morenpm-retry-version=5.0.1attempts failed the same way:Stage-publish platform packagesstopped on the first package with409 Cannot stage previously published version "5.0.1". ci(release): skip npm packages an earlier attempt already staged #1499 fixed that.Signed provenance statementand then 409, which the step now accepts as "Already staged awaiting approval". So their OIDC exchange works fromrelease.yml.Stage-publish main packagethen failed withE401 Unable to authenticate, with no provenance line. The OIDC exchange failed for@socketsecurity/socket-patchonly, and npm fell back to setup-node's placeholder token.The workflow side is done. The only blocker left is registry-side and needs a human:
@socketsecurity/socket-patchto repoSocketDev/socket-patch, workflowrelease.yml, no environment, the same as the platform packages.release.ymlwithnpm-retry-version=5.0.1. The platform packages will be skipped as already staged.Generated by Claude Code
mikolalysenko commentedon Oct 13, 2026
Update from the 2026-10-13 20:40 UTC CI janitor run: the 19:48 UTC retry (run 38457783819, job 115504855501) failed the same way.
Stage-publish main packageprintedStaging to https://registry.npmjs.org/ with tag latest, thenE401 Unable to authenticate, again with no provenance line. The OIDC exchange for@socketsecurity/socket-patchstill fails, so the trusted-publisher setting for that package (step 1 above) isn't in effect yet. Nothing has changed on the workflow side. The next retry will only help once that setting is saved on npmjs.com.Generated by Claude Code
mikolalysenko commentedon Oct 14, 2026
Update from the 2026-10-14 00:45 UTC CI janitor run: resolved.
@socketsecurity/socket-patch@5.0.1landed on npm at 2026-10-13 20:55 UTC (latestdist-tag, platform packages too, e.g.socket-patch-linux-x64-gnu@5.0.1), and crates.io hassocket-patch-coreandsocket-patch-cliat 5.0.1 (5.0.0 also present there). npm never got 5.0.0; 5.0.1 supersedes it, so no further publish is needed. Closing.Generated by Claude Code