Deprecation of `conflicts_with formula` is causing errors from previously installed autoupdating casks
brew doctor output
❯ brew doctor
Your system is ready to brew.
Verification
- [x] I ran
brew updatetwice and am still able to reproduce my issue. - [x] My "
brew doctoroutput" above saysYour system is ready to brewor a definitely unrelatedTiermessage. - [x] 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
❯ brew config
HOMEBREW_VERSION: 4.6.7-21-gaf6f648
ORIGIN: https://github.com/Homebrew/brew
HEAD: af6f648f00f424b510680821b7f2b50af7e4315e
Last commit: 3 hours ago
Branch: main
Core tap HEAD: 32b0299f1cfff1eb7142623f782d44aa69c0673b
Core tap last commit: 2 days ago
Core tap JSON: 25 Aug 21:24 UTC
Core cask tap HEAD: 847338de059cc9a545250d7942e9950c1ddc3040
Core cask tap last commit: 2 days ago
Core cask tap JSON: 25 Aug 21:24 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_FORBID_PACKAGES_FROM_PATHS: set
HOMEBREW_MAKE_JOBS: 8
HOMEBREW_NO_EMOJI: set
HOMEBREW_SORBET_RUNTIME: set
Homebrew Ruby: 3.4.5 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.4.5/bin/ruby
CPU: octa-core 64-bit arm_firestorm_icestorm
Clang: 17.0.0 build 1700
Git: 2.51.0 => /opt/homebrew/bin/git
Curl: 8.7.1 => /usr/bin/curl
macOS: 15.6.1-arm64
CLT: 16.4.0.0.1.1747106510
Xcode: 16.4 => /Applications/Xcode-16.4.0.app/Contents/Developer
Rosetta 2: false
What were you trying to do (and why)?
Run any kind of brew command that updates homebrew
What happened (include all command output)?
Since #20499 landed any time homebrew does an autoupdate, I'd get the following message repeated in the output:
Warning: Calling conflicts_with formula: is deprecated! There is no replacement.
For example, here is the complete output from an install command I ran this morning:
❯ brew install webkit2png
==> Auto-updating Homebrew...
Adjust how often this is run with `$HOMEBREW_AUTO_UPDATE_SECS` or disable with
`$HOMEBREW_NO_AUTO_UPDATE=1`. Hide these hints with `$HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> Auto-updated Homebrew!
==> Updated Homebrew from 4.6.6 (566290dcbc) to 4.6.7 (af6f648f00).
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
bunster: Compile shell scripts to static binaries
ggc: Modern Git CLI
gtrash: Featureful Trash CLI manager: alternative to rm and trash-cli
mac-cleanup-py: Python cleanup script for macOS
melt: Backup and restore Ed25519 SSH keys with seed words
nifi-toolkit: Command-line utilities to setup and support NiFi
podcast-archiver: Archive all episodes from your favorite podcasts
protozero: Minimalist protocol buffer decoder and encoder in C++
typtea: Minimal terminal-based typing speed tester
wishlist: Single entrypoint for multiple SSH endpoints
[email protected]: Programming language designed for robustness, optimality, and clarity
==> New Casks
orcaslicer@nightly: G-code generator for 3D printers
petrichor: Offline Music Player
You have 1 outdated formula installed.
Warning: Calling conflicts_with formula: is deprecated! There is no replacement.
Warning: Calling conflicts_with formula: is deprecated! There is no replacement.
The 4.6.7 changelog can be found at:
https://github.com/Homebrew/brew/releases/tag/4.6.7
==> Fetching downloads for: webkit2png
Warning: webkit2png has been deprecated because it is not supported upstream! It will be disabled on 2026-03-21.
==> Downloading https://ghcr.io/v2/homebrew/core/webkit2png/manifests/0.7
############################################################################################################################################################ 100.0%
==> Fetching webkit2png
==> Downloading https://ghcr.io/v2/homebrew/core/webkit2png/blobs/sha256:ad209d841f88f9b5d3a969e2493d853237c89234bd09dfc3d1aa2106832d2d7d
############################################################################################################################################################ 100.0%
==> Pouring webkit2png--0.7.all.bottle.tar.gz
/opt/homebrew/Cellar/webkit2png/0.7: 5 files, 23KB
==> Running `brew cleanup webkit2png`...
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> No outdated dependents to upgrade!
What did you expect to happen?
I didn't expect any error messages, not least because none of the taps I have installed call the deprecated method:
❯ cd /opt/homebrew/Library/Taps
❯ grep -r conflicts_with * | grep formula
homebrew/homebrew-core/Formula/b/bash-completion.rb: conflicts_with "bash-completion@2", because: "each are different versions of the same formula"
homebrew/homebrew-cask/.github/workflows/ci.yml: formula_conflicts = cask.conflicts_with&.dig(:formula).to_a.select { |f| Formula[f].any_version_installed? }
Step-by-step reproduction instructions (by running brew commands)
I don't know how to get this to be reliably reproducible using just brew commands, as it requires changes to the cask repository before and after the depreciation happened. But, I believe the sequence of events was:
- I installed
ollama-appsome time ago, which hasauto_updates trueand used to haveconflicts_with formula: "ollama" conflicts_with formulawas deprecated and the relevant line was removed from theollama-appformula- I updated homebrew and all installed formula, but this did not update the
ollama-appcask, as the app auto-updates - The deprecated formula remained on my system, and caused error messages
❯ cd /opt/homebrew/Caskroom
❯ grep -r conflicts_with * | grep formula
ollama-app/.metadata/0.5.4/20241230083827.099/Casks/ollama-app.json:{"full_token":"ollama","old_tokens":[],"tap":"homebrew/cask","name":["Ollama"],"desc":"Get up and running with large language models locally","homepage":"https://ollama.ai/","url":"https://github.com/ollama/ollama/releases/download/v0.5.4/Ollama-darwin.zip","url_specs":{"verified":"github.com/ollama/ollama/"},"version":"0.5.4","installed":null,"installed_time":null,"bundle_version":null,"bundle_short_version":null,"outdated":false,"sha256":"2424d20363d1b0c7249fef40af3561c61101b1129ed7f22ba408deee0f12227f","artifacts":[{"app":["Ollama.app"]},{"binary":["$APPDIR/Ollama.app/Contents/Resources/ollama"]},{"zap":[{"trash":["~/.ollama","~/Library/Application Support/Ollama"]}]}],"caveats":null,"depends_on":{"macos":{">=":["10.13"]}},"conflicts_with":{"formula":["ollama"]},"container":null,"auto_updates":true,"deprecated":false,"deprecation_date":null,"deprecation_reason":null,"deprecation_replacement":null,"disabled":false,"disable_date":null,"disable_reason":null,"disable_replacement":null,"tap_git_head":"4f6c7ce97d3ab60cd54bda4f703adacd914f954e","languages":[],"ruby_source_path":"Casks/o/ollama.rb","ruby_source_checksum":{"sha256":"a5ffd7dc840962ee7b50b59e798a9f090efbdc9b9664e05359f83be5baf1050b"},"variations":{},"token":"ollama-app"}
Reinstalling ollama-app seems to have fixed the problem:
❯ brew uninstall ollama-app&& brew install ollama-app
Warning: Calling conflicts_with formula: is deprecated! There is no replacement.
Warning: Calling conflicts_with formula: is deprecated! There is no replacement.
Warning: Calling conflicts_with formula: is deprecated! There is no replacement.
==> Uninstalling Cask ollama-app
==> Backing App 'Ollama.app' up to '/opt/homebrew/Caskroom/ollama-app/0.5.4/Ollama.app'
==> Removing App '/Applications/Ollama.app'
==> Unlinking Binary '/opt/homebrew/bin/ollama'
==> Purging files for version 0.5.4 of Cask ollama-app
==> Downloading https://github.com/ollama/ollama/releases/download/v0.11.6/Ollama-darwin.zip
==> Downloading from https://release-assets.githubusercontent.com/github-production-release-asset/658928958/20164940-46f9-4494-b0d9-41f4b2a867f0?sp=r&sv=2018-11-09&sr=b&spr=https&se=2025-08-25T22%3A24%3A08Z&rscd=attachment%3B+filename%3D
###################################################################################################################################################################################################################################### 100.0%
==> Installing Cask ollama-app
==> Moving App 'Ollama.app' to '/Applications/Ollama.app'
==> Linking Binary 'ollama' to '/opt/homebrew/bin/ollama'
ollama-app was successfully installed!
==> No outdated dependents to upgrade!
❯ brew update --force
==> Updating Homebrew...
Already up-to-date.
Notably reinstalling ollama-app again does not show the warning three times:
❯ brew uninstall ollama-app&& brew install ollama-app
==> Uninstalling Cask ollama-app
==> Backing App 'Ollama.app' up to '/opt/homebrew/Caskroom/ollama-app/0.11.6/Ollama.app'
==> Removing App '/Applications/Ollama.app'
==> Unlinking Binary '/opt/homebrew/bin/ollama'
==> Purging files for version 0.11.6 of Cask ollama-app
==> Downloading https://formulae.brew.sh/api/formula.jws.json
==> Downloading https://formulae.brew.sh/api/cask.jws.json
==> Downloading https://github.com/ollama/ollama/releases/download/v0.11.6/Ollama-darwin.zip
Already downloaded: /Users/ph/Library/Caches/Homebrew/downloads/069f25f24b111999dbe44d28cda62b62f66632e88367479481964bc4d677cb89--Ollama-darwin.zip
==> Installing Cask ollama-app
==> Moving App 'Ollama.app' to '/Applications/Ollama.app'
==> Linking Binary 'ollama' to '/opt/homebrew/bin/ollama'
ollama-app was successfully installed!
==> No outdated dependents to upgrade!
It is possible I made a mistake in diagnosing this issue, but if not I think you might want to avoid showing deprecation warnings for previously-installed autoupdating casks, or add some extra output to make it clear where the problem comes from, or rethink how deprecations work for auto-updating casks?
Yes, agreed this needs improved.
Can we see the output of HOMEBREW_DEVELOPER=1 brew outdated --debug and HOMEBREW_DEVELOPER=1 brew info --debug ollama? Thanks!
Here you go:
❯ HOMEBREW_DEVELOPER=1 brew outdated --debug
==> Downloading https://formulae.brew.sh/api/formula.jws.json
==> Downloading https://formulae.brew.sh/api/cask.jws.json
awscli (2.28.16) < 2.28.17
flyctl (0.3.171) < 0.3.172
❯ HOMEBREW_DEVELOPER=1 brew info --debug ollama
==> ollama: stable 0.11.7 (bottled), HEAD
Create, run, and share large language models (LLMs)
https://ollama.com/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/o/ollama.rb
License: MIT
==> Dependencies
Build: cmake (uninstalled), go (uninstalled)
==> Options
--HEAD
Install HEAD version
==> Caveats
To start ollama now and restart at login:
brew services start ollama
Or, if you don't want/need a background service you can just run:
OLLAMA_FLASH_ATTENTION="1" OLLAMA_KV_CACHE_TYPE="q8_0" /opt/homebrew/opt/ollama/bin/ollama serve
==> Downloading https://formulae.brew.sh/api/formula/ollama.json
==> Analytics
install: 34,705 (30 days), 80,830 (90 days), 231,048 (365 days)
install-on-request: 34,666 (30 days), 80,759 (90 days), 230,731 (365 days)
build-error: 40 (30 days)
I think you may have meant ollama-app and not ollama so here's that too:
❯ HOMEBREW_DEVELOPER=1 brew info --debug ollama-app
==> Printing caveats
==> ollama-app: 0.11.7 (auto_updates)
https://ollama.com/
Installed
/opt/homebrew/Caskroom/ollama-app/0.11.6 (116.8MB)
Installed using the formulae.brew.sh API on 2025-08-25 at 14:40:39
From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/o/ollama-app.rb
==> Name
Ollama
==> Description
Get up and running with large language models locally
==> Artifacts
Ollama.app (App)
/Applications/Ollama.app/Contents/Resources/ollama (Binary)
==> Downloading https://formulae.brew.sh/api/cask/ollama-app.json
==> Analytics
install: 5,478 (30 days), 9,175 (90 days), 9,175 (365 days)
Bear in mind that I reinstalled ollama-app yesterday and my system isn't showing the warnings any more so that output may no longer show what you're looking for.
Thanks! Given this is a one-time warning and things are sorted for you: closing this out until we have a reproduction and/or more complaints.
FWIW, I had this issue with an emacs-app cask installed on August 15. This had a "formula: emacs" in the conflicts_with, and also had auto_updates set to null. It did not show up as outdated (not sure what's supposed to happen). Uninstalling and reinstalling fixed the issue as the current cask does not have "formula" in its "conflicts_with". Ideally the error message would be better in this situation, but it wasn't hard to find this ticket and fix things, so improving the error is not essential.
Similar issue here
brew update
bu
==> Updating Homebrew...
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
gonzo: Log analysis TUI
==> Outdated Formulae
ffmpeg openimageio poppler sdl2 x264
You have 5 outdated formulae installed.
You can upgrade them with brew upgrade
or list them with brew outdated.
Warning: Calling conflicts_with formula: is deprecated! There is no replacement.
Warning: Calling conflicts_with formula: is deprecated! There is no replacement.
brew outdated
❯ HOMEBREW_DEVELOPER=1 brew outdated --debug
==> Downloading https://formulae.brew.sh/api/formula.jws.json
==> Downloading https://formulae.brew.sh/api/cask.jws.json
ffmpeg (8.0) < 8.0_1
openimageio (3.0.9.1_2) < 3.0.10.0
poppler (25.08.0) < 25.09.0
sdl2 (2.32.8) < 2.32.10
x264 (r3108) < r3222
❯ bu
==> Updating Homebrew...
Already up-to-date.
brew doctor
brew doctor
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: Some installed casks are deprecated or disabled.
You should find replacements for the following casks:
chromium
displaycal
qlmarkdown
I have the same issue, but run macOS 26 Public Beta and will stay silent until it's officially released.
I solved this by doing:
grep -irl '"formula":' "$HOMEBREW_PREFIX/Caskroom" (using fish as Terminal shell. You might need brackets and use grep -irl '"formula":' "${HOMEBREW_PREFIX}/Caskroom" ).
This should give you a list of all Casks with the issue. In my case it was Wireshark and Applite.
brew reinstall --cask wireshark-app and Applite solves the issue.
I can't reproduce this. I've installed an old version of ollama-app with a conflicts_with formula: and none of the commands above produce this warning.
If someone can provide me with step-by-step instructions for how to reproduce this with the latest Homebrew release: I can try to fix.
I had a similar issue, grep -irl '"formula":' "${HOMEBREW_PREFIX}/Caskroom" and brew reinstall --cask fixed it. The first command displayed the emacs-app cask (although I don't think I had it installed, I had the emacs cask installed instead). It appears that there was once a cask named emacs, but it was recently renamed to emacs-app. The brew reinstall --cask emacs-app command uninstalled the old emacs cask and installed the new emacs-app cask.
It looks like the wireshark-app cask was recently renamed as well. So the problem might be with renaming/deleting packages. The packages under their old names (emacs and wireshark) are no longer available.
Going to re-open this as a central place for all reported issues and to find a way to improve (EDIT: also since we moved to odisabled which results in a hard error rather than odeprecated)
- https://github.com/Homebrew/homebrew-cask/issues/237821
- https://github.com/Homebrew/homebrew-cask/pull/237865
- https://github.com/orgs/Homebrew/discussions/6516
- https://github.com/orgs/Homebrew/discussions/6364
Reproduction is a bit tricky as it needs to be done via JSON API which is not really possible to install old versions from.
Easiest way is to simulate this by just modifying metadata, e.g.
❯ unset HOMEBREW_NO_INSTALL_FROM_API
❯ brew install emacs-app
❯ vim $(brew --caskroom)/emacs-app/.metadata/*/*/Casks/emacs-app.json
Update file to have
"conflicts_with": {
"cask": [
"emacs-app@nightly",
"emacs-app@pretest"
],
"formula": [
"emacs"
]
},
Then any command that tries loading JSON will fail.
❯ brew reinstall emacs-app
Error: Cask 'emacs-app' definition is invalid: 'conflicts_with' stanza failed with: Calling conflicts_with formula: is disabled! There is no replacement.
For me, the method suggested by @pbalthasar, brew reinstall --cask emacs-app, also showed an error message indicating a bad 'conflicts-with' stanza.
After uninstall, install also failed (due to leftover files), until I tried --force.
Then 🍺 emacs-app was successfully installed!
More information (but without tedious detail), in case it helps:
-
brew outdated
->Error: Cask 'wireshark-app' definition is invalid: 'conflicts_with' stanza failed with: Calling conflicts_with formula: is disabled! There is no replacement. -
brew reinstall --cask wireshark-app
-> same error message -
brew reinstall --force --cask wireshark-app
-> same error message -
brew uninstall wireshark-app
brew cleanup
-> OK -
brew install --cask wireshark-app
->Error: It seems there is already an App at '/Applications/Wireshark.app'.I'll leave it to people who know more than I do, to determine whether this indicates a separate issue with
cleanup. -
brew install --force --cask wireshark-app
->🍺 wireshark-app was successfully installed!