Two more failure modes of the Release job's MCP-registry publish step turned up today that `isRetryablePublishFailure` (src/core/mcp-registry-retry.ts) doesn't recognise, so the release fails outright instead of retrying:
Net effect: both runs left a git tag (v3.9.0) created and pushed, but no npm package and no GitHub release for that version -- confirmed directly against the npm registry (`agent-comms@3.9.0` 404s) and the tag list (`v3.9.0` exists, `npm view agent-comms version` still reports 3.8.0).
Two independent fixes, both following this file's own established pattern of adding a newly-observed retryable failure class with an incident comment:
- Add a connection-level-error check to `isRetryablePublishFailure` (matching `dial tcp`, `i/o timeout`, `connection refused`, or similar Go net-error text mcp-publisher's own HTTP client would produce) alongside the existing propagation-lag and 5xx checks.
- For the JWT-expiry case, either re-run `mcp-publisher login github-oidc` before each retry attempt (not just once up front), or treat a 401 with "expired" in the body as retryable only after re-logging in first -- retrying the same expired token would just 401 again.
Filed while merging #157; unrelated to that PR's own diff, which is why it's a separate issue rather than a fix bundled into it.
Two more failure modes of the Release job's MCP-registry publish step turned up today that `isRetryablePublishFailure` (src/core/mcp-registry-retry.ts) doesn't recognise, so the release fails outright instead of retrying:
Net effect: both runs left a git tag (v3.9.0) created and pushed, but no npm package and no GitHub release for that version -- confirmed directly against the npm registry (`agent-comms@3.9.0` 404s) and the tag list (`v3.9.0` exists, `npm view agent-comms version` still reports 3.8.0).
Two independent fixes, both following this file's own established pattern of adding a newly-observed retryable failure class with an incident comment:
Filed while merging #157; unrelated to that PR's own diff, which is why it's a separate issue rather than a fix bundled into it.