Skip to content

[Bug]: "shopify app dev" spawn xdg-open ENOENT on any key press to log in to Shopify when use within devcontainer since @shopify/cli:3.59.0 #3938

@leonardo-ornelas

Description

@leonardo-ornelas

Please confirm that you have:

  • Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
  • Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?

App

Expected behavior

It should have worked even with devcontainer, as it worked in all versions prior to 3.59.0.

Actual behavior

To run this command, log in to Shopify.
👉 Press any key to open the login page on your browser
Error: spawn xdg-open ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:286:19)
    at onErrorNT (node:internal/child_process:484:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
 ELIFECYCLE  Command failed with exit code 1.

Verbose output

> shopify app dev --verbose

2024-05-28T03:07:31.394Z: Running command app dev
2024-05-28T03:07:31.409Z: Getting a random port...
2024-05-28T03:07:31.412Z: Random port obtained: 35993
2024-05-28T03:07:31.427Z: cloudflared already installed, skipping
2024-05-28T03:07:31.434Z: 
Running system process:
  · Command: /workspace/node_modules/.pnpm/@shopify+cli@3.59.0/node_modules/@shopify/cli/bin/cloudflared tunnel --url http://localhost:35993 --no-autoupdate
  · Working directory: /workspace

2024-05-28T03:07:31.439Z: Reading cached app information for directory /workspace...
2024-05-28T03:07:31.443Z: Reading cached app information for directory /workspace...
2024-05-28T03:07:31.443Z: Reading the content of file at shopify.app.toml...
2024-05-28T03:07:31.444Z: 2024-05-28T03:07:31Z INF Thank you for trying Cloudflare Tunnel. Doing so, without a Cloudflare account, is a quick way to experiment and try it out. However, be aware that these account-less Tunnels have no uptime guarantee. If you intend to use Tunnels in production you should use a pre-created named tunnel by following: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps

2024-05-28T03:07:31.444Z: 2024-05-28T03:07:31Z INF Requesting new quick Tunnel on trycloudflare.com...

2024-05-28T03:07:31.449Z: Reading the content of file at shopify.app.toml...
2024-05-28T03:07:31.453Z: Reading the content of file at shopify.app.toml...
2024-05-28T03:07:31.514Z: Reading the .env file at .env
2024-05-28T03:07:31.515Z: Reading the content of file at .env...
2024-05-28T03:07:31.516Z: Reading the content of file at package.json...
2024-05-28T03:07:31.516Z: Reading the content of file at package.json...
2024-05-28T03:07:31.517Z: Obtaining the dependency manager in directory /workspace...
2024-05-28T03:07:31.623Z: Reading the content of file at web/shopify.web.toml...
2024-05-28T03:07:31.623Z: Reading the content of file at web/frontend/shopify.web.toml...
2024-05-28T03:07:31.792Z: Reading the content of file at package.json...
2024-05-28T03:07:31.794Z: Ensuring that the user is authenticated with the Partners API with the following scopes:
[]

2024-05-28T03:07:31.795Z: Getting session store...
2024-05-28T03:07:31.795Z: Validating existing session against the scopes:
[
  "openid",
  "https://api.shopify.com/auth/shop.admin.graphql",
  "https://api.shopify.com/auth/shop.admin.themes",
  "https://api.shopify.com/auth/partners.collaborator-relationships.readonly",
  "https://api.shopify.com/auth/shop.storefront-renderer.devtools",
  "https://api.shopify.com/auth/partners.app.cli.access",
  "https://api.shopify.com/auth/destinations.readonly"
]
For applications:
{
  "partnersApi": {
    "scopes": []
  }
}

2024-05-28T03:07:31.796Z: Initiating the full authentication flow...
2024-05-28T03:07:31.796Z: Authorizing through Identity's website...

To run this command, log in to Shopify.
👉 Press any key to open the login page on your browser
2024-05-28T03:07:32.461Z: 2024-05-28T03:07:32Z INF +--------------------------------------------------------------------------------------------+
2024-05-28T03:07:32Z INF |  Your quick Tunnel has been created! Visit it at (it may take some time to be reachable):  |
2024-05-28T03:07:32Z INF |  https://folks-grill-many-solid.trycloudflare.com                                          |
2024-05-28T03:07:32Z INF +--------------------------------------------------------------------------------------------+

2024-05-28T03:07:32.462Z: 2024-05-28T03:07:32Z INF Cannot determine default configuration path. No file [config.yml config.yaml] in [~/.cloudflared ~/.cloudflare-warp ~/cloudflare-warp /etc/cloudflared /usr/local/etc/cloudflared]

2024-05-28T03:07:32.462Z: 2024-05-28T03:07:32Z INF Version 2024.2.1
2024-05-28T03:07:32Z INF GOOS: linux, GOVersion: go1.21.5, GoArch: amd64
2024-05-28T03:07:32Z INF Settings: map[ha-connections:1 no-autoupdate:true protocol:quic url:http://localhost:35993]

2024-05-28T03:07:32.463Z: 2024-05-28T03:07:32Z INF Generated Connector ID: 95f65344-96d4-4432-88eb-cb5611b828ac

2024-05-28T03:07:32.480Z: 2024-05-28T03:07:32Z INF Initial protocol quic

2024-05-28T03:07:32.480Z: 2024-05-28T03:07:32Z INF ICMP proxy will use 172.19.0.2 as source for IPv4
2024-05-28T03:07:32Z INF ICMP proxy will use ::1 in zone lo as source for IPv6

2024-05-28T03:07:32.502Z: 2024-05-28T03:07:32Z INF Starting metrics server on 127.0.0.1:42003/metrics

2024-05-28T03:07:32.505Z: 2024/05/28 03:07:32 failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details.

2024-05-28T03:07:32.602Z: 2024-05-28T03:07:32Z WRN Your version 2024.2.1 is outdated. We recommend upgrading it to 2024.5.0

2024-05-28T03:07:32.734Z: 2024-05-28T03:07:32Z INF Registered tunnel connection connIndex=0 connection=697021e2-048b-4d41-b47e-eecc28bf4134 event=0 ip=198.41.200.63 location=yyz04 protocol=quic

Error: spawn xdg-open ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:286:19)
    at onErrorNT (node:internal/child_process:484:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
 ELIFECYCLE  Command failed with exit code 1.

 *  The terminal process "/bin/bash '-c', 'pnpm run dev'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it.

Reproduction steps

  1. Use any shopify app template in a devcontianer and run "shopify app dev" on @shopify/cli:^3.59.0 for login.

Operating System

Ubuntu 24.04

Shopify CLI version (check your project's package.json if you're not sure)

3.59.0

Shell

zsh

Node version (run node -v if you're not sure)

v20.5.1

What language and version are you using in your application?

Node v20.5.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type: BugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions