Skip to content

fix: don't report upstream-only blobs as locally available in HEAD#32

Merged
davidpoblador merged 1 commit intomainfrom
worktree-mutable-hopping-squid
Apr 7, 2026
Merged

fix: don't report upstream-only blobs as locally available in HEAD#32
davidpoblador merged 1 commit intomainfrom
worktree-mutable-hopping-squid

Conversation

@davidpoblador
Copy link
Copy Markdown
Member

Summary

  • Push clients (docker buildx) do HEAD checks before uploading blobs. Switchyard's head_blob was falling back to upstream, returning 200 for blobs not stored locally. This caused clients to skip the upload, and sync would fail forever with missing blobs.
  • Removed the upstream fallback from head_blob. Pull clients are unaffected since get_blob already proxies and caches from upstream.
  • Added a regression test with a mocked upstream confirming HEAD returns 404 for non-local blobs.

Test plan

  • New test test_head_blob_returns_404_when_only_upstream_has_it passes
  • All 76 tests pass
  • Redeploy and run PUSH_REGISTRY=localhost:5050 just release from bulletin to verify sync completes

🤖 Generated with Claude Code

Push clients (docker buildx) check HEAD before uploading blobs. When
switchyard reported 200 for blobs that only existed upstream, clients
skipped the upload, causing sync to fail with missing blobs forever.

GET already proxies and caches from upstream for pull clients, so the
HEAD fallback was unnecessary.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@davidpoblador davidpoblador merged commit 8925dfa into main Apr 7, 2026
@davidpoblador davidpoblador deleted the worktree-mutable-hopping-squid branch April 7, 2026 13:03
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