When you work with Laravel Mix for local web development, the hot reload feature can be a huge time saver. It lets you see your CSS and JavaScript changes in the browser instantly, without a full page refresh. But sometimes, hot reload just refuses to work. This can break your workflow and slow down your progress. If you’re stuck with Laravel Mix hot reload not working, you’re not alone. Let’s break down the main causes, practical solutions, and tips to get your development environment running smoothly again.
What Is Laravel Mix Hot Reload?
Laravel Mix is a wrapper around Webpack, designed to make asset compilation easier for Laravel projects. Hot reload (or Hot Module Replacement, HMR) is a feature that updates your browser as soon as you save changes, without reloading the page completely.
Here’s how it usually works:
- You run `npm run hot`.
- Mix starts a local development server (typically on port 8080).
- Your browser connects to this server and listens for file changes.
- When you save a file, the browser updates the changed part instantly.
But what if none of this happens? Let’s look at why hot reload might fail.
Common Reasons Hot Reload Fails
Many developers face this issue, especially when switching projects or after an OS update. The reasons are not always obvious. Here are some frequent causes:
- Wrong URL or Port: Mix might be running on a different port or host than your browser.
- HTTPS vs HTTP Mismatch: Your app might use HTTPS, but Mix is serving assets over HTTP, or vice versa.
- Browser Cache: Old JavaScript or CSS files might still be cached.
- Network Issues: Firewalls or VPNs can block the connection.
- Mix Not Running: You might have started the wrong NPM script.
- Outdated Dependencies: Your Mix or Webpack version may be incompatible.
- Proxy Settings: If you use tools like Valet or Homestead, proxy settings can interfere.
- Environment Variable Errors: The `.env` file might have missing or incorrect settings.
A key insight: Sometimes, the browser console shows silent errors that are easy to overlook. Always check there first.

Credit: stackoverflow.com
Quick Comparison: Hot Reload Vs Browsersync
Understanding the difference can help with troubleshooting. Here’s a quick side-by-side:
| Feature | Hot Reload (HMR) | BrowserSync |
|---|---|---|
| Refreshes CSS/JS Only | Yes | No |
| Full Page Reload | No | Yes |
| State Preserved | Yes | No |
| Live Reload for PHP Changes | No | Yes |
Step-by-step Fixes For Laravel Mix Hot Reload
Let’s walk through the most effective troubleshooting steps. Each step addresses a specific, common cause.
1. Check Npm Script
Always start with the basics.
- Run `npm run hot` in your project folder.
- Don’t use `npm run dev` or `npm run watch` for hot reload.
If you see errors, resolve them first.
2. Confirm Mix Server Url
By default, Mix serves assets on `http://localhost:8080`. But sometimes, you need to specify the host or port.
Add this to your `.env`:
MIX_DEV_SERVER_URL=http://localhost:8080
And in `webpack.mix.js`:
mix.options({
hmrOptions: {
host: 'localhost',
port: 8080
}
});
Restart Mix after changes.
3. Match Https Settings
If your app runs on HTTPS, make sure Mix does too.
- Start Mix with `–https`:
npm run hot -- --https
- Update `MIX_DEV_SERVER_URL` to use `https`.
4. Clear Browser Cache
Old assets can stick around. Try this:
- Open DevTools, go to Application > Clear Storage, and click “Clear site data.”
- Hard refresh (Ctrl + F5 or Cmd + Shift + R).
5. Check For Proxy Issues
If you use Laravel Valet or Homestead, you may need to add a proxy:
mix.browserSync({
proxy: 'your-app.test',
open: false,
https: true
});
But remember, BrowserSync is not HMR. For HMR, set the right `MIX_DEV_SERVER_URL` and access your app using its real URL (not the Mix dev server URL).
6. Update Dependencies
Outdated packages can break hot reload.
- Run `npm outdated` to see what’s old.
- Update with `npm install` or `npm update`.
You may need to delete `node_modules` and `package-lock. json`, then run `npm install` again.
7. Check For Network Or Firewall Blocks
Some VPNs or firewalls block WebSocket connections needed for hot reload. Temporarily disable them to test.
8. Watch For Console Errors
In your browser DevTools, check the console and network tabs. Look for:
- WebSocket connection errors
- 404 errors for `hot` or `.js` files
This often reveals what’s wrong.

Credit: dev.to
Real-world Example
Imagine you’re developing on Windows with Laravel Valet. You run `npm run hot`, but nothing happens in your browser. You notice in the console:
[HMR] Waiting for update signal from WDS...
But no updates happen. You check your `.env` and see:
MIX_DEV_SERVER_URL=http://localhost:8080
But you’re accessing the app at `http://my-app.test`. The fix: update your `webpack.mix.js` with the right HMR host and port, then use your Valet URL in the browser. This connects the two, and hot reload works.
Troubleshooting Table: What To Check
Here’s a quick reference for the most common issues:
| Problem | What to Check | Quick Fix |
|---|---|---|
| Hot reload does nothing | NPM script, .env URL, browser URL | Restart `npm run hot`, check URLs |
| Assets not updating | Browser cache, mix server URL | Clear cache, confirm URLs match |
| WebSocket errors | Firewall, VPN, port settings | Disable blockers, check port |
| HTTPS mismatch | App vs Mix protocol | Use `–https`, update .env |

Credit: dev.to
Two Key Insights Beginners Miss
- The app URL and Mix server URL are different. You must access your app through its real URL (like `http: //my-app.test`), not the `localhost:8080` Mix dev server. The Mix server provides assets only.
- Proxy settings can break HMR. Tools like Valet or Homestead sometimes need extra proxy configuration, or HMR won’t connect.
When All Else Fails
If you’ve tried everything and it’s still not working, try these steps:
- Delete `node_modules` and `package-lock.json`, then run `npm install`.
- Restart your computer.
- Test in a different browser to rule out browser-specific issues.
- Check the official Laravel Mix documentation for updates.
Staying patient and methodical usually uncovers the cause.
Frequently Asked Questions
Why Does Hot Reload Work On Some Projects But Not Others?
Each project may use different versions of Laravel Mix or have unique `.env` and `webpack.mix.js` settings. Always compare the working and non-working setups.
Do I Need To Use Browsersync And Hmr Together?
No. BrowserSync reloads the whole page, while HMR updates only changed modules. Usually, you use one or the other, not both at the same time.
How Do I Know If Mix Is Actually Running Hmr?
When you run `npm run hot`, your terminal should show “Hot Module Replacement enabled” and your browser’s network tab should show requests to `/sockjs-node` or similar.
Can Hot Reload Work Over Https?
Yes, but you must start Mix with the `–https` flag and update all related URLs to use https. Otherwise, you’ll get security or mixed content errors.
What’s A Common Mistake Beginners Make With Hot Reload?
They access their app using the Mix dev server URL (`localhost:8080`) instead of their app’s real URL. Always use your app URL and let Mix inject the assets automatically.
Solving Laravel Mix hot reload not working takes patience and attention to detail, but once it’s fixed, your development process will be much faster and smoother.

Dorothy Addeo is a senior product reviewer at Safefins.com with years of experience testing kitchen, furniture, backpacks, and everyday lifestyle products. She focuses on comfort, durability, usability, and long-term value through hands-on research and real-world testing. Her goal is to help readers find reliable products with honest, easy-to-understand recommendations they can trust.
