Release branch/tag collisions make source archives return HTTP 300
Author: eejdCreated Jul 20, 2026Updated Jul 20, 2026
Problem
The refs 1.16.1 and 1.16.2 each exist as both a release branch and a tag. GitHub cannot resolve the canonical source archive URLs unambiguously:
$ curl -sS -o /dev/null -w "%{http_code}\\n" https://github.com/zerotier/ZeroTierOne/archive/1.16.1.tar.gz
300
$ curl -sS -o /dev/null -w "%{http_code}\\n" https://github.com/zerotier/ZeroTierOne/archive/1.16.2.tar.gz
300This breaks packaging and vendoring tools that use archive/<version>.tar.gz.
Explicit tag URLs work and redirect normally:
$ curl -sS -o /dev/null -w "%{http_code}\\n" https://github.com/zerotier/ZeroTierOne/archive/refs/tags/1.16.1.tar.gz
302
$ curl -sS -o /dev/null -w "%{http_code}\\n" https://github.com/zerotier/ZeroTierOne/archive/refs/tags/1.16.2.tar.gz
302Requested cleanup
Please delete or rename the colliding 1.16.1 and 1.16.2 branch refs while preserving the release tags. Future release branches could use names such as release/1.16.2 to avoid colliding with tags.
The explicit archive/refs/tags/<version>.tar.gz form is a working consumer-side workaround.
Downstream tracking: eejd/cpp-zerotier-one#2.
Source: zerotier/ZeroTierOne