Skip to content

fix(validators/oci): fail closed on upstream rate limiting#1281

Merged
rdimitrov merged 1 commit into
modelcontextprotocol:mainfrom
rdimitrov:fix/oci-validator-failclosed-on-429
May 12, 2026
Merged

fix(validators/oci): fail closed on upstream rate limiting#1281
rdimitrov merged 1 commit into
modelcontextprotocol:mainfrom
rdimitrov:fix/oci-validator-failclosed-on-429

Conversation

@rdimitrov
Copy link
Copy Markdown
Member

Summary

When the OCI validator's anonymous manifest fetch returns HTTP 429, return a retryable error instead of nil. This aligns OCI with the fail-closed behavior of the npm / PyPI / NuGet / MCPB validators, and ensures the io.modelcontextprotocol.server.name label-match always runs before a publish is accepted.

Test plan

  • go test ./internal/validators/registries/ -run TestValidateOCI passes locally
  • gofmt + golangci-lint clean on the changed file
  • CI green

🤖 Generated with Claude Code

ValidateOCI previously returned nil when the anonymous manifest fetch
came back HTTP 429, skipping the io.modelcontextprotocol.server.name
label-match that is the only cross-system ownership proof we apply to
OCI packages. Under upstream rate-limiting that branch let a publish
proceed without any ownership attestation against the named image.

Surface the 429 as a retryable error instead, matching the
fail-closed behavior of the npm/PyPI/NuGet/MCPB validators on
non-success upstream responses.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@rdimitrov rdimitrov merged commit 35b2071 into modelcontextprotocol:main May 12, 2026
2 checks passed
rdimitrov added a commit that referenced this pull request May 12, 2026
Promotes
[v1.7.9](https://github.com/modelcontextprotocol/registry/releases/tag/v1.7.9)
to production. Includes the OCI validator fail-closed fix from #1281.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant