Skip to content

HOMEBREW_ARTIFACT_DOMAIN does not fallback to ghcr.io URLs #21892

@forevanyeung

Description

@forevanyeung

brew doctor output

Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: /usr/bin occurs before /opt/homebrew/bin in your PATH.
This means that system-provided programs will be used instead of those
provided by Homebrew. Consider setting your PATH so that
/opt/homebrew/bin occurs before /usr/bin. Here is a one-liner:
  echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc

The following tools exist at both paths:
  openssl
  pip3
  python3

Verification

  • I ran brew update twice and am still able to reproduce my issue.
  • My "brew doctor output" above says Your system is ready to brew or a definitely unrelated Tier message.
  • This issue's title and/or description do not reference a single formula e.g. brew install wget. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.

brew config output

HOMEBREW_VERSION: 5.1.3-12-gf31f20a
ORIGIN: https://github.com/Homebrew/brew
HEAD: f31f20a49747a14897a3eb3cd1773cbad6d70c72
Last commit: 4 hours ago
Branch: main
Core tap JSON: 02 Apr 20:52 UTC
Core cask tap JSON: 02 Apr 20:52 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_REPOSITORY: /opt/homebrew/Homebrew
HOMEBREW_ARTIFACT_DOMAIN: https://<internal_nexus>/repository/githubcr-proxy/
HOMEBREW_CASK_OPTS: []
HOMEBREW_DOWNLOAD_CONCURRENCY: 16
HOMEBREW_FORBID_PACKAGES_FROM_PATHS: set
HOMEBREW_MAKE_JOBS: 8
HOMEBREW_SORBET_RUNTIME: set
Homebrew Ruby: 4.0.2 => /opt/homebrew/Homebrew/Library/Homebrew/vendor/portable-ruby/4.0.2_1/bin/ruby
CPU: octa-core 64-bit arm_firestorm_icestorm
Clang: 17.0.0 build 1700
Git: 2.50.1 => /Library/Developer/CommandLineTools/usr/bin/git
Curl: 8.7.1 => /usr/bin/curl
macOS: 26.3-arm64
CLT: 26.2.0.0.1.1764812424
Xcode: N/A
Rosetta 2: false

What were you trying to do (and why)?

When connected to certain networks I do not have access to ghcr.io, so I have HOMEBREW_ARTIFACT_DOMAIN set to use an internal mirror. However, when HOMEBREW_ARTIFACT_DOMAIN is not reachable, Homebrew does not fallback to using ghcr.io. I do not have HOMEBREW_ARTIFACT_DOMAIN_NO_FALLBACK set, so I expected Homebrew would be able to fallback.

: When $HOMEBREW_ARTIFACT_DOMAIN and $HOMEBREW_ARTIFACT_DOMAIN_NO_FALLBACK
are both set, if the request to $HOMEBREW_ARTIFACT_DOMAIN fails then
Homebrew will error rather than trying any other/default URLs.

What happened (include all command output)?

==> Fetching downloads for: xz
✘ Bottle xz (5.8.3)
Error: Failed to download resource "xz"
Download failed: https://<nexus_internal>/repository/githubcr-proxy/v2/homebrew/core/xz/blobs/sha256:55c891f5d47142fe923c87df0e3343d7ef2bc7d368c67892b4ad2c80e53069d5
curl: (6) Could not resolve host: <nexus_internal>
Warning: Problem : timeout. Will retry in 1 seconds. 3 retries left.
curl: (6) Could not resolve host: <nexus_internal>
Warning: Problem : timeout. Will retry in 2 seconds. 2 retries left.
curl: (6) Could not resolve host: <nexus_internal>
Warning: Problem : timeout. Will retry in 4 seconds. 1 retries left.
curl: (6) Could not resolve host: <nexus_internal>

What did you expect to happen?

When HOMEBREW_ARTIFACT_DOMAIN is set, Homebrew will attempt to use the value set, if the artifact domain is not reachable, Homebrew will fallback to using the default ghcr.io domain.

Step-by-step reproduction instructions (by running brew commands)

HOMEBREW_ARTIFACT_DOMAIN=https://<internal_nexus>/repository/githubcr-proxy/ brew install xz

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedWe want help addressing this

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions