skip to Main Content

Running php artisan dusk get the error:

FacebookWebDriverExceptionUnknownErrorException: unknown error: net::ERR_CONNECTION_REFUSED
  (Session info: headless chrome=85.0.4183.83)

Versions:

  • OS: Windows 10 v1903 build 18362.1016
  • Chrome: 85.0.4183.83
  • Laravel: v6.18.37
  • Dusk: v5.11.0
  • Phpunit: v8.5.8

Tried:

  • Disable firewall
  • Set test website to use localhost (was myapp.local)
  • Can access all pages using Chrome browser
  • Check that vendor/laravel/dusk/bin/chromedriver-win.exe is executable (-rwxr-xr-x)
  • php artisan route:clear
  • php artisan cache:clear
  • php artisan config:clear
  • composer dump-autoload
  • google "FacebookWebDriverExceptionUnknownErrorException: unknown error: net::ERR_CONNECTION_REFUSED"

The server localhost:9515 appears to be running while tests executing as I get the following response in Chrome when trying it:

{
    value: {
        error: "unknown command",
        message: "unknown command: unknown command: ",
        stacktrace: "Backtrace: Ordinal0 [0x0037D383+3134339] Ordinal0 [0x0026A171+2007409] Ordinal0 [0x0010AEE8+569064] Ordinal0 [0x000AD12C+184620] Ordinal0 [0x000ACF0A+184074] Ordinal0 [0x00081FD7+8151] Ordinal0 [0x00082496+9366] Ordinal0 [0x00082B40+11072] Ordinal0 [0x00280CD9+2100441] GetHandleVerifier [0x004EB75A+1396954] GetHandleVerifier [0x004EB3D9+1396057] GetHandleVerifier [0x004F7126+1444518] GetHandleVerifier [0x004EBCE8+1398376] Ordinal0 [0x00277F51+2064209] Ordinal0 [0x00081D35+7477] Ordinal0 [0x00081991+6545] GetHandleVerifier [0x006BF31C+3312796] BaseThreadInitThunk [0x76986359+25] RtlGetAppContainerNamedObjectPath [0x771D7C24+228] RtlGetAppContainerNamedObjectPath [0x771D7BF4+180] (No symbol) [0x00000000] ",
    }
}

DuskTestCase driver:

/**
 * Create the RemoteWebDriver instance.
 *
 * @return FacebookWebDriverRemoteRemoteWebDriver
 */
protected function driver()
{
    $options = (new ChromeOptions)->addArguments([
        '--disable-gpu',
        '--headless',
        '--window-size=1920,1080',
    ]);

    return RemoteWebDriver::create(
        'http://localhost:9515', DesiredCapabilities::chrome()->setCapability(
            ChromeOptions::CAPABILITY, $options
        )
    );
}

Does anyone have any clues on what else to try? Or does anyone else know a resolution?

7

Answers


  1. Chosen as BEST ANSWER

    Fixed it by following these steps:

    1. Remove vendor folder and remove composer.lock
    2. php composer.phar install
    3. Check your current Chrome Version - you can check it by going to https://www.whatismybrowser.com/detect/what-version-of-chrome-do-i-have
    4. Download the WebDriver for Chrome that matches your current Chrome Version from http://chromedriver.chromium.org/downloads
    5. Manually remove old chromedriver-win.exe version from vendorlaravelduskbin and put the one you downloaded there. Note that you will have to rename the file.

    After doing step 2 above the error message changed which prompted the remaining steps.


  2. I faced the same issue and for me what worked was setting the APP_URL parameter in the .env file as:

    APP_URL=http://127.0.0.1:8000
    

    As that was the same port on which my php artisan serve would also serve the website i.e.

    Laravel development server started: http://127.0.0.1:8000
    
    Login or Signup to reply.
  3. I’m putting this out there for others that might face the same thing as me.

    It turns out Laravel Dusk expects us to run php artisan serve before running php artisan dusk! The ERR_CONNECTION_REFUSED error refers to not being able to connect to the http://localhost:8000 URL of the application itself, because it’s not running.

    This does make sense, but I simply didn’t know and the documentation was not clear on that (I had to deduce it). The ChromeDriver, however, is started automatically by Dusk at execution time.

    Login or Signup to reply.
  4. To fix this error you will need to update .env file APP_URL parameter to your local server url as below

    APP_NAME=Laravel
    APP_ENV=local
    APP_KEY=base64:XZoWMB3aWom/V3iZy870VSQjMsBdGCHYdWbRuNb6aY0=
    APP_DEBUG=true
    APP_URL=http://127.0.0.1:8000 #(This can be url to your local environment)
    
    Login or Signup to reply.
  5. For me the error disappeared after setting .env APP_ENV=development and i keep .env.dusk.development also same.

    Login or Signup to reply.
  6. I was trying to run the dusk after installing the new Laravel 8.77 and faced the following error and found the solution by creating new .env.dusk.local file. You have to create .env.dusk.{environment} as per your current environment.

    In your newly created env file, you need to define proper URL for ex. http://testing-laravel.local by creating virtual host.

    There was 1 error:
    
    1) TestsBrowserExampleTest::testBasicExample
    FacebookWebDriverExceptionUnknownErrorException: unknown error: net::ERR_CONNECTION_REFUSED
      (Session info: headless chrome=96.0.4664.110)
    
    Login or Signup to reply.
  7. The only thing that helped me with Laravel 9 is to set APP_URL=http://laravel.test in the .env.dusk.local file.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search