Skip to content

Release job's MCP registry publish retry doesn't cover connection timeouts or expired JWT #180

Description

@Mearman

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:

  1. 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.
  2. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions