Unauthenticated clone of a public repo intermittently returns 401 (prompts for Username) from CI workers #206581
Replies: 37 comments 61 replies
|
💬 Your Product Feedback Has Been Submitted 🎉 Thank you for taking the time to share your insights with us! Your feedback is invaluable as we build a better GitHub experience for all our users. Here's what you can expect moving forward ⏩
Where to look to see what's shipping 👀
What you can do in the meantime 💻
As a member of the GitHub community, your participation is essential. While we can't promise that every suggestion will be implemented, we want to emphasize that your feedback is instrumental in guiding our decisions and priorities. Thank you once again for your contribution to making GitHub even better! We're grateful for your ongoing support and collaboration in shaping the future of our platform. ⭐ |
|
We are experiencing the same issue beginning around 09:26 UTC today. Adding the following line resolved the issue for us: No credentials or other pipeline changes were needed. |
|
Same issue here |
|
Another possible fix seems to be to use "actions/checkout" instead of "git clone" |
|
Also same, for us configuring git to use http/1.1 works around it |
|
We're also observing some |
|
@nebuk89 Do you have any known active issues with your European servers? |
|
Hey everyone! 👋 Thank you for raising this. We have shared this with our internal teams to investigate - if we have any updates we will post here and in appropriate discussions ✨ |
|
In case if you need more traces. Here is one from ancient With HTTP/1.1 |
|
I have made an interesting observation - this exact problem occurs with gnutls, but not with openssl (for example on arch linux) |
|
Seeing the same intermittent failures on EU-based CI runners. Switching to HTTP/1.1 seems to reduce the issue, but it doesn’t feel like a reliable long-term workaround. |
|
FTR, I stumbled on this when trying to build zephyr which clones modules as part of the build. Chatting with AI gave the hint to try HTTP/1.1 (which works), further investigation then led me to this discussion. |
|
I just encountered this issue when trying to update Homebrew on Ubuntu 24.04 in EU |
|
TrueNAS users are affected too (both community and enterprise I guess), see https://forums.truenas.com/t/truenas-apps-catalog-fails-to-sync-git-http-2-returns-401-http-1-1-works/67742 |
|
Why is this not reported on https://www.githubstatus.com/ ? |
|
Just to confirm, we are experiencing the same issue in our CI when fetching public GitHub repositories. I saw two similar error messages so far: It happened on both our self-hosted GitLab instance and ghe.com. |
|
We confirm, we are experiencing the same issue in our CI when fetching private GitHub repositories |
|
Thanks to anyone reporting that downgrading the connection to For anyone interested |
|
The incident seems to be over now? Or at least we can't reproduce it anymore: |
|
It's possible to define the HTTP/1.1 only for the step that needs it (like CMake dependencies in our case) |
|
+1 We're seeing the same thing in our CI/CD. repo sync, which uses git under the hood, is failing while fetching multiple manifests. |
|
same issue here on our Azure self-hosted (private, no public IP) Virtual Machine Scale Sets (Azure DevOps Runners). |
|
+1 Seems to have some dependency on the host - trying to clone from my Windows laptop works consistently. Cloning from some of our Ubuntu machines fails 99% of the time. Update 03/09/26 13:16 CET: first time CI (which makes use of cloning a public repo via HTTPS) successfully completed on Ubuntu 20.04, 22.04 and 24.04 machines after consistent failures during the last ~36 hours. |
|
Wonder if these problems arise because of too many traffic through bots. |
|
Hi everyone! We wanted to thank everyone for their patience and apologise for the confusion we see many have had when being prompted to authenticate to clone public repositories. Our aim is to make public repositories accessible without authentication as much as possible. However, like much of the Internet, we continue to see significant increases in the volume of robot traffic recently which has increased the need for verification, for example CAPTCHAs. Striking the right balance means accommodating our current users whilst protecting the broader community we support ensuring GitHub remains fast and reliable for all of our users. For Git commands, we achieve this by applying higher limits to your account if you're authenticated. There is a challenge, however – in most cases Git will attempt all requests without authentication first, and only authenticate if it receives a
The key element here is that "the user agent MAY repeat the request with a new or replaced Authorization header field" – which is what Git then does in this case. Previously, we have limited traffic with a Git has two ways to force authentication – you can configure http.proactiveAuth, or you can use Git over SSH, which is always authenticated. However, either of these would require you to change your Git configuration to use authentication and receive higher limits than we are able to offer currently to unauthenticated traffic. To address the recent increase in abusive traffic, we have expanded our traffic protections for unauthenticated requests. When these protections are applied, we now return We understand this isn't ideal. We’re continuously improving our systems to identifying and responding to excessive abusive traffic, reduce false positives while also keeping GitHub available, and fast, and reliable for all our developers. As automated abusive traffic continues to increase and those traffic patterns frequently change, some requests may still require additional verification. By returning a Therefore, if possible, we recommend configuring your Git client with authentication credentials for GitHub. If you need assistance with this, we have documented options in "Authenticating with the command line." Thank you again for your patience and understanding as we work to maintain GitHub's availability and performance for every developer! |
|
Previously public Github repos are not public anymore and are basicly limited to registered users? Also - if you are a paying customer your public repos are now limited? |
|
@github Community Admin: Whatever changes GitHub have made, the situation is now better for our build servers: builds are now succeeding, without the 'use HTTP/1.1' workaround: no authentication-related failures so far 🤞 |
|
I think the execution here could have been better. The small heads up like: "Hey, in the near term future, we will make a change, which is going to affect fetching public repositories in github actions. In order to stay not affected, please generate PAT token with empty privileges, add it to you Github Actions as secret and then use this token to fetch public repositories. We expect this change to land in one week from now" That would have been a completely other look then what happened here ;/ |


Hi everyone! We wanted to thank everyone for their patience and apologise for the confusion we see many have had when being prompted to authenticate to clone public repositories.
Our aim is to make public repositories accessible without authentication as much as possible. However, like much of the Internet, we continue to see significant increases in the volume of robot traffic recently which has increased the need for verification, for example CAPTCHAs.
Striking the right balance means accommodating our current users whilst protecting the broader community we support ensuring GitHub remains fast and reliable for all of our users.
For Git commands, we achieve this by applying higher limit…