- Prefer newer working Homebrew or system Git and curl before a path suggestion, so overrides cannot displace suitable defaults. Share selection with Subversion when it is invoked. - Cache probes against executable metadata and selection inputs to avoid repeated version checks. Read cache data without sourcing shell code and pass Bash's known curl version and path to Ruby for reuse. - Preserve system curl suitability across cached and forced selections so legacy remote updates and certificate checks remain correct. Keep TLS verification enabled when a suitable custom curl is selected. - Check Git and curl in `brew doctor`. Invalidate failed cached selections and reselect for one retry, refreshing Ruby's cached data so subsequent checks use the working replacement. - Limit invalidation for command failures to explicit version checks. Refresh after installation and preserve ordinary download errors without retrying downloads or wrapping every invocation. - Attempt installation when Git/curl are unsuitable or explicitly forced. Prevent recursive startup and recheck the result before reporting the minimum, observed versions and executable paths. - Retain version floors and document paths as suggestions without promising a fixed selection order, allowing policy to evolve.
2.5 KiB
last_review_date
| last_review_date |
|---|
| 2026-07-18 |
Troubleshooting
Use this checklist before creating a Homebrew issue.
Update and diagnose
- Run
brew update. - Run
brew updateagain so the first update cannot leave the failing command on an older Homebrew version. - Run
brew doctorand read every warning. - Correct warnings that apply to the failing command.
- Retry the original command and keep its complete output.
brew doctor also checks the Git and curl executables.
If a tool fails its version check, this clears its cached selection and retries once.
Do not apply destructive Git, ownership or permission changes from an old issue report without understanding which files they affect. See Common Issues for current recovery guidance.
Search existing reports
Search the tracker responsible for the failing component:
Homebrew/homebrew-coreissues for formulaeHomebrew/homebrew-caskissues for casksHomebrew/brewissues for thebrewcommand- The tap's own tracker for a formula, cask or command from a non-Homebrew tap
Also search Homebrew Discussions for support and related reports. The Discourse archive is no longer online; anything you find quoted from it is historical material and will contain outdated instructions.
Collect diagnostic information
For a formula installation or build failure, upload its logs:
brew gist-logs FORMULA
For other failures, collect:
brew config
brew doctor
Remove credentials, private repository URLs and other secrets before publishing terminal output. Do not omit warnings merely because they appear unrelated.
Create an issue
If the problem is neither resolved nor already reported, use the issue template in the appropriate repository:
Homebrew/homebrew-coreissue chooserHomebrew/homebrew-caskissue chooserHomebrew/brewissue chooser
Include the command, complete error, relevant brew config and brew doctor output and the brew gist-logs URL when available.
Use a descriptive title that identifies the package, failure and operating system.
See Creating a Homebrew Issue for reporting expectations.