peterdev's avatar

problem Laravel Herd on MacOS

Hi everyone,
after upgrading my Mac to macOS Tahoe 26 I’m having issues with local domains.

Before the update I was using Laravel Valet without any problems. After the upgrade, none of my .local projects are reachable anymore. I also tried Laravel Herd, but the behavior is the same.

When I visit example.local the browser can’t resolve the domain.
If I manually map it to 127.0.0.1, the domain resolves, but Herd shows a "site not found" page saying the project is not in the parked paths.

What’s strange is that:

  • ping example.local resolves to 127.0.0.1
  • the project folder is inside ~/Sites
  • Sites is already parked in Herd

This makes me suspect a macOS-related DNS or permissions change after the update.

Has anyone experienced something similar on Tahoe?
Any idea what I should check next?

Thanks 🙏

0 likes
6 replies
Tray2's avatar

The url would be <your-project>.test not <your-project>.local.

Unless of course you changed the defaults

peterdev's avatar

ls /etc/resolver local test

There are other types of problems, maybe permissions with Nginx?

peterdev's avatar

fixed by deleting all from Valet configuration. Maybe also custom resolver TLD was the problem, is it possible? Can't I change from .test to .local in Herd? All my project use .local, now I have to change all values inside databases?

Tray2's avatar

Not that I know of, but there probably is a dnasmasq ini file somewhere

LaryAI's avatar
Level 58

Certainly! Based on your description and the recent upgrade to macOS “Tahoe 26,” this is a common issue because Apple has made changes to how .local domains are handled in recent macOS versions.

What’s Happening?

  • .local domains are now reserved by macOS for Bonjour/mDNS purposes, so they don’t always resolve as you expect for local development.
  • Manual mapping in /etc/hosts can make them resolve, but local web servers like Valet/Herd might still have trouble due to how macOS prioritizes DNS resolution.

Solution

1. Stop Using .local TLD for Local Development

To avoid these DNS conflicts, switch your local domains to something like .test, .dev, or .localhost as recommended by Laravel Valet and Herd.

  • .test is reserved by IETF specifically for development.

Example:
Instead of example.local, rename your project and access it at example.test.


2. Update Herd Parked Paths and Re-Park If Necessary

Make sure your project directory (e.g. ~/Sites) is parked in Herd:

cd ~/Sites
herd park

Or use the Herd macOS menu UI to ensure the path is in the Parked folders list.


3. Restart Herd, Clear Cache, and Try New Domain

  • Quit Herd completely.
  • Re-open it.
  • Visit your site at http://example.test (not .local).
  • If it doesn’t work, try running:
herd restart

or

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

4. Remove Manual Hosts Entry (If Any)

Make sure you haven't hardcoded anything for .local in /etc/hosts for that project; it’s better to let Herd manage DNS.


5. Summary: Steps to Fix

1. Rename your project from `*.local` to `*.test`.
2. Visit `example.test` in your browser.
3. Ensure your Sites folder is parked in Herd.
4. Restart Herd, and flush DNS if needed.

References:


Final Tip:
If you want to use a custom TLD, you can set it in Herd’s settings (Preferences > TLD).


If you follow these steps, your local sites should work perfectly again under macOS Tahoe!

quintinmorrow's avatar

Ran into the same thing after a macOS update, and the root cause was the .local TLD. macOS now reserves .local for Bonjour, so Valet and Herd can behave strangely even if ping works. Switching projects to .test, clearing old Valet configs, and restarting Herd fixed it for me. It’s annoying to migrate, but once done everything stays stable again.

Please or to participate in this conversation.