Skip to content

[Bug]: Laravel installer update prompt creates infinite loop on Windows #1677

@JoshSalway

Description

@JoshSalway

Herd Version

Latest (Windows, April 2026)

Laravel Installer Version

Bundled: 5.24.4 (laravel.phar)
Global composer: 5.25.2

Description

When running laravel new via Herd on Windows, the bundled laravel.phar (v5.24.4) detects that v5.25.2 is available and prompts to update. Accepting the update runs composer global require laravel/installer which updates the global composer copy to 5.25.2, but the bundled phar file remains at 5.24.4. On the next run, it detects the same version mismatch and prompts again, creating an infinite loop.

Steps to Reproduce

  1. Have Herd installed on Windows with bundled Laravel installer 5.24.4
  2. Run laravel new myapp --livewire
  3. Installer shows: "A new version of the Laravel installer is available. You have version 5.24.4 installed, the latest version is 5.25.2."
  4. Select "yes" to update
  5. Composer global updates to 5.25.2 successfully
  6. Run laravel new myapp --livewire again
  7. Same prompt appears because the phar is still 5.24.4
  8. Loop continues indefinitely - must Ctrl+C to exit

Root Cause

Herd's laravel.bat runs php laravel.phar (a bundled binary). The update process runs composer global require laravel/installer which updates a separate copy at C:\Users\<user>\AppData\Roaming\Composer\vendor\bin\laravel. The phar file at C:\Users\<user>\.config\herd\bin\laravel.phar is never replaced, so the version check always sees 5.24.4.

Workaround

Update the Laravel installer via the Herd desktop app (Settings > Update), which correctly replaces the phar file. Alternatively, bypass the phar and use the global composer version directly:

php C:\Users\<user>\AppData\Roaming\Composer\vendor\bin\laravel new myapp

Expected Behavior

Either:

  • The phar should update itself when the user accepts the update prompt
  • Or the update prompt should not appear when running from a bundled phar (since composer global can't update it)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions