Shopify / cli

Build apps, themes, and hydrogen storefronts for Shopify
https://shopify.dev
MIT License
401 stars 120 forks source link

[Bug]: Theme extensions not appearing in development stores for Remix project #3461

Closed hsdonkin closed 3 weeks ago

hsdonkin commented 6 months ago

Please confirm that you have:

In which of these areas are you experiencing a problem?

App, Extension, Theme

Expected behavior

When I add a theme extension to my Remix app, and connect my app to a development store, then I should see the example app in the list of app blocks for the product form

Actual behavior

The example rating stars app block doesn't appear in the customizer. Deploying the app makes the app block appear, and it can be added to the development theme, but the app block doesn't show changes in HMR. Deploying the app again makes the changes appear.

Verbose output

> dev
> shopify app dev --verbose

2024-02-20T17:40:46.094Z: Running command app dev
2024-02-20T17:40:46.099Z: Getting a random port...
2024-02-20T17:40:46.102Z: Random port obtained: 49858
2024-02-20T17:40:46.108Z: 
Running system process:
  · Command: /Users/hugh/Documents/GitHub/req-testing/node_modules/@shopify/plugin-cloudflare/bin/cloudflared tunnel --url http://localhost:49858 --no-autoupdate
  · Working directory: /Users/hugh/Documents/GitHub/req-testing

2024-02-20T17:40:46.109Z: Ensuring that the user is authenticated with the Partners API with the following scopes:
[]

2024-02-20T17:40:46.110Z: Getting session store...
2024-02-20T17:40:46.112Z: 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-02-20T17:40:46.112Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2024-02-20T17:40:46.112Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:46.281Z: 2024-02-20T17:40:46Z 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-02-20T17:40:46.282Z: 2024-02-20T17:40:46Z INF Requesting new quick Tunnel on trycloudflare.com...

2024-02-20T17:40:46.322Z: Request to https://accounts.shopify.com/oauth/introspection completed in 206 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"8f3a9613d5f530fbb07a422187c18f98"
 - x-request-id: 13de2015-42d7-4c04-b5f6-dbab3e9a1b0d

2024-02-20T17:40:46.324Z: The identity token is valid: true
2024-02-20T17:40:46.324Z: 
The validation of the token for application/identity completed with the following results:
- It's expired: false
- It's invalid in identity: false

2024-02-20T17:40:46.324Z: Verifying that the user has a Partner organization
2024-02-20T17:40:46.330Z: Sending "Partners" GraphQL request:
  {
    organizations(first: 1) {
      nodes {
        id
      }
    }
  }

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:46.566Z: Request to https://partners.shopify.com/api/cli/graphql completed in 224 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"5eea3e8aa02571ba9180255708ea7b19"
 - x-request-id: 3af9a390-1bed-4076-aa6f-1268f8687a45

2024-02-20T17:40:46.572Z: Sending "Partners" GraphQL request:
  query currentAccountInfo {
    currentAccountInfo {
      __typename
      ... on ServiceAccount {
        orgName
      }
      ... on UserAccount {
        email
      }
    }
  }

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:46.784Z: Request to https://partners.shopify.com/api/cli/graphql completed in 209 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"8f74400562bdc30dced830200fa0d4a0"
 - x-request-id: d80fbabf-c898-4cd4-baab-c7f914390247

2024-02-20T17:40:46.789Z: Reading cached app information for directory /Users/hugh/Documents/GitHub/req-testing...
2024-02-20T17:40:46.805Z: Reading cached app information for directory /Users/hugh/Documents/GitHub/req-testing...
2024-02-20T17:40:46.841Z: Reading cached app information for directory /Users/hugh/Documents/GitHub/req-testing...
2024-02-20T17:40:46.841Z: Reading the content of file at shopify.app.toml...
2024-02-20T17:40:46.843Z: Reading the content of file at shopify.app.toml...
2024-02-20T17:40:46.845Z: Reading the content of file at shopify.app.toml...
2024-02-20T17:40:46.850Z: Sending "Partners" GraphQL request:
  query FindOrganization($id: ID!) {
    organizations(id: $id, first: 1) {
      nodes {
        id
        businessName
        website
      }
    }
  }

With variables:
{
  "id": "132835"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:47.069Z: Request to https://partners.shopify.com/api/cli/graphql completed in 217 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"63a812acc3533fa35de13c19953b4888"
 - x-request-id: fb365bf4-fdaa-471e-886b-bcc96179f7b9

2024-02-20T17:40:47.078Z: Sending "Partners" GraphQL request:
  query FindApp($apiKey: String!) {
    app(apiKey: $apiKey) {
      id
      title
      apiKey
      organizationId
      apiSecretKeys {
        secret
      }
      appType
      grantedScopes
      applicationUrl
      redirectUrlWhitelist
      requestedAccessScopes
      developmentStorePreviewEnabled
      disabledBetas
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:47.217Z: 2024-02-20T17:40:47Z INF +--------------------------------------------------------------------------------------------+

2024-02-20T17:40:47.217Z: 2024-02-20T17:40:47Z INF |  Your quick Tunnel has been created! Visit it at (it may take some time to be reachable):  |
2024-02-20T17:40:47Z INF |  https://generates-balloon-pieces-no.trycloudflare.com                                     |
2024-02-20T17:40:47Z INF +--------------------------------------------------------------------------------------------+

2024-02-20T17:40:47.220Z: 2024-02-20T17:40:47Z 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-02-20T17:40:47.221Z: 2024-02-20T17:40:47Z INF Version 2023.5.1

2024-02-20T17:40:47.221Z: 2024-02-20T17:40:47Z INF GOOS: darwin, GOVersion: go1.19.3, GoArch: amd64

2024-02-20T17:40:47.223Z: 2024-02-20T17:40:47Z INF Settings: map[ha-connections:1 no-autoupdate:true protocol:quic url:http://localhost:49858]

2024-02-20T17:40:47.227Z: Sending "Partners" GraphQL request:
  query FindOrganization($id: ID!, $shopDomain: String) {
    organizations(id: $id, first: 1) {
      nodes {
        id
        businessName
        website
        stores(shopDomain: $shopDomain, first: 1, archived: false) {
          nodes {
            shopId
            link
            shopDomain
            shopName
            transferDisabled
            convertableToPartnerTest
          }
        }
      }
    }
  }

With variables:
{
  "id": "132835",
  "shopDomain": "wlcr-partners.myshopify.com"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:47.232Z: 2024-02-20T17:40:47Z INF Generated Connector ID: 4427844e-28a6-4317-a042-2377cb161e44

2024-02-20T17:40:47.262Z: 2024-02-20T17:40:47Z INF Initial protocol quic

2024-02-20T17:40:47.265Z: 2024-02-20T17:40:47Z INF ICMP proxy will use 10.2.0.41 as source for IPv4

2024-02-20T17:40:47.270Z: 2024-02-20T17:40:47Z INF ICMP proxy will use fe80::14b2:d7b:a35a:de91 in zone en0 as source for IPv6

2024-02-20T17:40:47.271Z: 2024-02-20T17:40:47Z INF Created ICMP proxy listening on 10.2.0.41:0

2024-02-20T17:40:47.272Z: 2024-02-20T17:40:47Z INF Created ICMP proxy listening on [fe80::14b2:d7b:a35a:de91%en0]:0

2024-02-20T17:40:47.309Z: 2024-02-20T17:40:47Z INF Starting metrics server on 127.0.0.1:49867/metrics

2024-02-20T17:40:47.463Z: 2024-02-20T17:40:47Z INF Registered tunnel connection connIndex=0 connection=74cdb1dd-aa9f-465f-8f55-46249f40fd22 event=0 ip=198.41.200.233 location=pdx02 protocol=quic

2024-02-20T17:40:47.472Z: Request to https://partners.shopify.com/api/cli/graphql completed in 243 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"e64dae169e9dd746719469519455604a"
 - x-request-id: e13cf7e8-94a0-4034-957c-a5bcb8b733e9

2024-02-20T17:40:47.473Z: 2024-02-20T17:40:47Z WRN Your version 2023.5.1 is outdated. We recommend upgrading it to 2024.2.0

2024-02-20T17:40:47.906Z: Request to https://partners.shopify.com/api/cli/graphql completed in 823 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"67ce4f9c279ecfd9504360b07fa0aa06"
 - x-request-id: acaa86d4-6e09-406b-bf04-1f94799b34d4

2024-02-20T17:40:47.914Z: Sending "Partners" GraphQL request:
  query fetchSpecifications($api_key: String!) {
    extensionSpecifications(apiKey: $api_key) {
      name
      externalName
      externalIdentifier
      identifier
      gated
      experience
      options {
        managementExperience
        registrationLimit
      }
      features {
        argo {
          surface
        }
      }
    }
  }

With variables:
{
  "api_key": "7f4bfae5cf58f645854328745145004e"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:48.237Z: Request to https://partners.shopify.com/api/cli/graphql completed in 320 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"9ab17d4da8931884f8e467f5f1f46318"
 - x-request-id: 674c92ef-4287-4d46-bc94-089f422d6d58

2024-02-20T17:40:48.243Z: Reading cached app information for directory /Users/hugh/Documents/GitHub/req-testing...
2024-02-20T17:40:48.244Z: Reading the content of file at shopify.app.toml...
2024-02-20T17:40:48.245Z: Reading the content of file at shopify.app.toml...
2024-02-20T17:40:48.249Z: Reading the content of file at shopify.app.toml...
2024-02-20T17:40:48.255Z: Reading the content of file at extensions/theme-extension/shopify.extension.toml...
2024-02-20T17:40:48.257Z: Reading the content of file at package.json...
2024-02-20T17:40:48.258Z: Reading the content of file at package.json...
2024-02-20T17:40:48.258Z: Obtaining the dependency manager in directory /Users/hugh/Documents/GitHub/req-testing...
2024-02-20T17:40:48.263Z: Reading the content of file at shopify.web.toml...
2024-02-20T17:40:48.268Z: Reading the content of file at package.json...
2024-02-20T17:40:48.270Z: Storing app information for directory /Users/hugh/Documents/GitHub/req-testing:{
  "appId": "7f4bfae5cf58f645854328745145004e",
  "title": "req-testing",
  "directory": "/Users/hugh/Documents/GitHub/req-testing",
  "storeFqdn": "wlcr-partners.myshopify.com",
  "orgId": "132835"
}
╭─ info ───────────────────────────────────────────────────────────────────────╮
│                                                                              │
│  Using shopify.app.toml:                                                     │
│                                                                              │
│    • Org:             WLCR                                                   │
│    • App:             req-testing                                            │
│    • Dev store:       wlcr-partners.myshopify.com                            │
│    • Update URLs:     Not yet configured                                     │
│                                                                              │
│   You can pass `--reset` to your command to reset your app configuration.    │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

2024-02-20T17:40:48.323Z: Polling tunnel status for cloudflare (attempt 0): connected
2024-02-20T17:40:48.323Z: Getting a random port...
2024-02-20T17:40:48.324Z: Random port obtained: 49871
2024-02-20T17:40:48.327Z: Sending "Partners" GraphQL request:
  query getApp($apiKey: String!) {
    app(apiKey: $apiKey) {
      applicationUrl
      redirectUrlWhitelist
      appProxy {
        url
        subPath
        subPathPrefix
      }
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:48.916Z: Request to https://partners.shopify.com/api/cli/graphql completed in 588 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"848b552be1dab5c9f84b94f09cef23a4"
 - x-request-id: 586922f7-6cda-467b-869a-d29ada108228

2024-02-20T17:40:48.925Z: Sending "Partners" GraphQL request:
  mutation appUpdate($apiKey: String!, $applicationUrl: Url!, $redirectUrlWhitelist: [Url]!, $appProxy: AppProxyInput) {
    appUpdate(
      input: {
        apiKey: $apiKey
        applicationUrl: $applicationUrl
        redirectUrlWhitelist: $redirectUrlWhitelist
        appProxy: $appProxy
      }
    ) {
      userErrors {
        message
        field
      }
    }
  }

With variables:
{
  "apiKey": "*****",
  "applicationUrl": "https://generates-balloon-pieces-no.trycloudflare.com",
  "redirectUrlWhitelist": [
    "https://generates-balloon-pieces-no.trycloudflare.com/auth/callback",
    "https://generates-balloon-pieces-no.trycloudflare.com/auth/shopify/callback",
    "https://generates-balloon-pieces-no.trycloudflare.com/api/auth/callback"
  ]
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:49.936Z: Request to https://partners.shopify.com/api/cli/graphql completed in 1008 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"76acb4e44b91f928c3744a856cacdd2e"
 - x-request-id: b793b2e6-bd20-43cd-864e-bc02dde8416e

2024-02-20T17:40:49.940Z: Getting a random port...
2024-02-20T17:40:49.941Z: Random port obtained: 49874
2024-02-20T17:40:49.942Z: Ensuring that the user is authenticated with the Admin API with the following scopes for the store wlcr-partners.myshopify.com:
[]

2024-02-20T17:40:49.942Z: Getting session store...
2024-02-20T17:40:49.943Z: 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:
{
  "adminApi": {
    "scopes": [],
    "storeFqdn": "wlcr-partners.myshopify.com"
  }
}

2024-02-20T17:40:49.944Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2024-02-20T17:40:49.944Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:50.179Z: Request to https://accounts.shopify.com/oauth/introspection completed in 232 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"8f3a9613d5f530fbb07a422187c18f98"
 - x-request-id: 28ed6404-4112-4290-84b1-adaf86425a18

2024-02-20T17:40:50.194Z: The identity token is valid: true
2024-02-20T17:40:50.195Z: 
The validation of the token for application/identity completed with the following results:
- It's expired: false
- It's invalid in identity: false

2024-02-20T17:40:50.195Z: Getting host theme...
2024-02-20T17:40:50.601Z: Request to https://wlcr-partners.myshopify.com/admin/api/unstable/themes/134906413232.json?fields=id%2Cname%2Crole%2Cprocessing completed in 400 ms
With response headers:
 - content-type: application/json; charset=utf-8
 - x-request-id: e58fd5dd-2d03-4b23-b8bb-d217d057b6c7

2024-02-20T17:40:50.605Z: Ensuring that the user is authenticated with the Storefront API with the following scopes:
[]

2024-02-20T17:40:50.606Z: Getting session store...
2024-02-20T17:40:50.607Z: 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:
{
  "storefrontRendererApi": {
    "scopes": []
  }
}

2024-02-20T17:40:50.608Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2024-02-20T17:40:50.608Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:50.614Z: Sending "Partners" GraphQL request:
  query allAppExtensionRegistrations($apiKey: String!) {
    app(apiKey: $apiKey) {
      extensionRegistrations {
        id
        uuid
        title
        type
        draftVersion {
          config
        }
        activeVersion {
          config
        }
      }
      configurationRegistrations {
        id
        uuid
        title
        type
        draftVersion {
          config
        }
        activeVersion {
          config
        }
      }
      dashboardManagedExtensionRegistrations {
        id
        uuid
        title
        type
        activeVersion {
          config
        }
        draftVersion {
          config
        }
      }
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:50.856Z: Request to https://accounts.shopify.com/oauth/introspection completed in 246 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"8f3a9613d5f530fbb07a422187c18f98"
 - x-request-id: a7b91e24-1639-47f1-99f4-5107d748e68b

2024-02-20T17:40:50.858Z: The identity token is valid: true
2024-02-20T17:40:50.858Z: 
The validation of the token for application/identity completed with the following results:
- It's expired: false
- It's invalid in identity: false

2024-02-20T17:40:51.737Z: Request to https://partners.shopify.com/api/cli/graphql completed in 1120 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"c591441efa3687dcb864c34a2085fbb7"
 - x-request-id: f8e816de-d49f-4547-92ea-eeee949f8a2c

2024-02-20T17:40:51.740Z: Storing app information for directory /Users/hugh/Documents/GitHub/req-testing:{
  "directory": "/Users/hugh/Documents/GitHub/req-testing",
  "previousAppId": "7f4bfae5cf58f645854328745145004e"
}
2024-02-20T17:40:51.768Z: Obtaining the dependency manager in directory /Users/hugh/Documents/GitHub/req-testing...
2024-02-20T17:40:51.771Z: 
Running system process:
  · Command: ruby -v
  · Working directory: /Users/hugh/Documents/GitHub/req-testing

2024-02-20T17:40:51.886Z: Request to https://monorail-edge.shopifysvc.com/v1/produce completed in 94 ms
With response headers:
 - x-request-id: 5552d170-d1ed-4f0a-9a25-95f78555f47a

2024-02-20T17:40:51.886Z: Analytics event sent: {
  "command": "app dev",
  "time_start": 1708450846095,
  "time_end": 1708450851762,
  "total_time": 5667,
  "success": true,
  "cli_version": "3.56.2",
  "ruby_version": "3.1.3",
  "node_version": "18.17.1",
  "is_employee": false,
  "uname": "darwin arm64",
  "env_ci": false,
  "env_plugin_installed_any_custom": false,
  "env_plugin_installed_shopify": "[\"@shopify/app\",\"@shopify/cli\",\"@shopify/plugin-cloudflare\",\"@shopify/plugin-did-you-mean\"]",
  "env_shell": "zsh",
  "env_device_id": "b64c83062e5166195e52f5a34e634504d8387eb2",
  "env_cloud": "localhost",
  "env_package_manager": "npm",
  "cmd_app_warning_api_key_deprecation_displayed": false,
  "cmd_app_all_configs_any": false,
  "cmd_app_all_configs_clients": "{}",
  "cmd_app_linked_config_used": false,
  "project_type": "node",
  "app_extensions_any": true,
  "app_extensions_breakdown": "{\"theme\":1}",
  "app_extensions_count": 1,
  "app_extensions_custom_layout": false,
  "app_extensions_function_any": false,
  "app_extensions_function_count": 0,
  "app_extensions_theme_any": true,
  "app_extensions_theme_count": 1,
  "app_extensions_ui_any": false,
  "app_extensions_ui_count": 0,
  "app_name_hash": "8216bdc1e184334b9d989e57c9798ff4bd23b93d",
  "app_path_hash": "7d6b922a5ae8d6f87bbf544de5587007dbe58d73",
  "app_scopes": "[\"write_products\"]",
  "app_web_backend_any": true,
  "app_web_backend_count": 1,
  "app_web_custom_layout": true,
  "app_web_framework": "remix",
  "app_web_frontend_any": true,
  "app_web_frontend_count": 1,
  "env_package_manager_workspaces": true,
  "partner_id": 132835,
  "api_key": "7f4bfae5cf58f645854328745145004e",
  "cmd_dev_urls_updated": true,
  "store_fqdn_hash": "78f527db31ce4e06b41356a773c2d9d4bb388d5f",
  "cmd_app_dependency_installation_skipped": false,
  "cmd_app_reset_used": false,
  "cmd_all_timing_network_ms": 5388,
  "cmd_all_timing_prompts_ms": 0,
  "cmd_all_launcher": "npm",
  "cmd_all_topic": "app",
  "cmd_all_plugin": "@shopify/app",
  "cmd_all_verbose": true,
  "cmd_all_path_override": true,
  "cmd_all_path_override_hash": "7d6b922a5ae8d6f87bbf544de5587007dbe58d73",
  "cmd_all_timing_active_ms": 278,
  "cmd_all_exit": "ok",
  "args": "--verbose",
  "app_name": "req-testing",
  "store_fqdn": "wlcr-partners.myshopify.com",
  "env_plugin_installed_all": "[\"@shopify/app\",\"@shopify/cli\",\"@shopify/plugin-cloudflare\",\"@shopify/plugin-did-you-mean\"]",
  "metadata": "{\"extraPublic\":{},\"extraSensitive\":{}}"
}
2024-02-20T17:40:51.892Z: Sending "Partners" GraphQL request:
  query allAppExtensionRegistrations($apiKey: String!) {
    app(apiKey: $apiKey) {
      extensionRegistrations {
        id
        uuid
        title
        type
        draftVersion {
          config
        }
        activeVersion {
          config
        }
      }
      configurationRegistrations {
        id
        uuid
        title
        type
        draftVersion {
          config
        }
        activeVersion {
          config
        }
      }
      dashboardManagedExtensionRegistrations {
        id
        uuid
        title
        type
        activeVersion {
          config
        }
        draftVersion {
          config
        }
      }
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:53.377Z: Request to https://partners.shopify.com/api/cli/graphql completed in 1483 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"c591441efa3687dcb864c34a2085fbb7"
 - x-request-id: 60e205f2-788c-49c0-80a8-4f1db9186e66

2024-02-20T17:40:53.398Z: 
Running system process:
  · Command: npm exec remix dev
  · Working directory: /Users/hugh/Documents/GitHub/req-testing

──────────────────────────────────────────────────────────────────────────────────────────────────────────────

› Press d │ toggle development store preview: ✔ on
› Press g │ open GraphiQL (Admin API) in your browser
› Press p │ preview in your browser
› Press q │ quit

Preview URL:
https://wlcr-partners.myshopify.com/admin/oauth/redirect_from_cli?client_id=7f4bfae5cf58f645854328745145004e
GraphiQL URL: http://localhost:3457/graphiql

  express:application set "x-powered-by" to true +0ms
  express:application set "etag" to 'weak' +0ms
  express:application set "etag fn" to [Function: generateETag] +1ms
  express:application set "env" to 'development' +0ms
  express:application set "query parser" to 'extended' +0ms
  express:application set "query parser fn" to [Function: parseExtendedQueryString] +0ms
  express:application set "subdomain offset" to 2 +0ms
  express:application set "trust proxy" to false +0ms
  express:application set "trust proxy fn" to [Function: trustNone] +0ms
  express:application booting in development mode +1ms
  express:application set "view" to [Function: View] +0ms
  express:application set "views" to '/Users/hugh/Documents/GitHub/req-testing/views' +0ms
  express:application set "jsonp callback name" to 'callback' +0ms
  express:router use '/' query +1ms
  express:router:layer new '/' +0ms
  express:router use '/' expressInit +0ms
  express:router:layer new '/' +0ms
  express:router:route new '/graphiql/ping' +0ms
  express:router:layer new '/graphiql/ping' +0ms
  express:router:route get '/graphiql/ping' +1ms
  express:router:layer new '/' +0ms
  express:router:route new '/graphiql/favicon.ico' +0ms
  express:router:layer new '/graphiql/favicon.ico' +0ms
  express:router:route get '/graphiql/favicon.ico' +0ms
  express:router:layer new '/' +0ms
  express:router:route new '/graphiql/simple.css' +0ms
  express:router:layer new '/graphiql/simple.css' +0ms
  express:router:route get '/graphiql/simple.css' +0ms
  express:router:layer new '/' +0ms
  express:router:route new '/graphiql/status' +0ms
  express:router:layer new '/graphiql/status' +0ms
2024-02-20T17:40:53.413Z: Ensuring that the user is authenticated with the Partners API with the following scopes:
[]

09:40:53 │ graphiql   │ 2024-02-20T17:40:53.399Z: Setting up GraphiQL HTTP server on port 3457...
09:40:53 │ graphiql   │ GraphiQL server started on port 3457
2024-02-20T17:40:53.431Z: Getting session store...
2024-02-20T17:40:53.439Z: 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-02-20T17:40:53.439Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2024-02-20T17:40:53.439Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:53.443Z: Sending "Partners" GraphQL request:
  mutation DevelopmentStorePreviewUpdate($input: DevelopmentStorePreviewUpdateInput!) {
    developmentStorePreviewUpdate(input: $input) {
      app {
        id
        developmentStorePreviewEnabled
      }
      userErrors {
        message
        field
      }
    }
  }

With variables:
{
  "input": {
    "apiKey": "7f4bfae5cf58f645854328745145004e",
    "enabled": true
  }
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:53.613Z: Request to https://accounts.shopify.com/oauth/introspection completed in 172 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"8f3a9613d5f530fbb07a422187c18f98"
 - x-request-id: dad77624-2c48-4161-88fe-b42cbe287ef8

2024-02-20T17:40:53.615Z: The identity token is valid: true
2024-02-20T17:40:53.615Z: 
The validation of the token for application/identity completed with the following results:
- It's expired: false
- It's invalid in identity: false

2024-02-20T17:40:53.615Z: Verifying that the user has a Partner organization
2024-02-20T17:40:53.620Z: Sending "Partners" GraphQL request:
  {
    organizations(first: 1) {
      nodes {
        id
      }
    }
  }

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:40:53.879Z: Request to https://partners.shopify.com/api/cli/graphql completed in 259 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"5eea3e8aa02571ba9180255708ea7b19"
 - x-request-id: 93d50070-6c0c-442d-a7d8-85ff93625f93

2024-02-20T17:40:53.883Z: 
Running system process:
  · Command: ruby -v
  · Working directory: /Users/hugh/Documents/GitHub/req-testing

2024-02-20T17:40:53.890Z: 
Running system process:
  · Command: bundle -v
  · Working directory: /Users/hugh/Documents/GitHub/req-testing

2024-02-20T17:40:54.011Z: Reading the content of file at node_modules/@shopify/cli-kit/assets/cli-ruby/Gemfile...
2024-02-20T17:40:54.014Z: 
Running system process:
  · Command: bundle install
  · Working directory: /Users/hugh/Documents/GitHub/req-testing/node_modules/@shopify/cli-kit/assets/cli-ruby

2024-02-20T17:40:54.140Z: Request to https://partners.shopify.com/api/cli/graphql completed in 696 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"4cdc24f246392b3344546e21995c1694"
 - x-request-id: bedf079e-41fe-40a0-ad44-2135dd198616

2024-02-20T17:40:54.246Z: 
Running system process:
  · Command: bundle exec ruby /Users/hugh/Documents/GitHub/req-testing/node_modules/@shopify/cli-kit/assets/cli-ruby/bin/shopify theme token --partners atkn_CpgCCJrF064GELr9064GYokCCAESEPDRS67JGkH2gv_yo7CyJUEaNGh0dHBzOi8vYXBpLnNob3BpZnkuY29tL2F1dGgvcGFydG5lcnMuYXBwLmNsaS5hY2Nlc3MgBSinUzokYzQwZTRiMTQtYjIyYi00YzAwLWJiNGMtOTJlNDE2MTQ2ZDAzQgdBY2NvdW50ShDMFg8PBuZOEIDJuCe4yKNLUlN7InN1YiI6ImZiZGIyNjQ5LWUzMjctNDkwNy04ZjY3LTkwOGQyNGNmZDdlMyIsImlzcyI6Imh0dHBzOi8vYWNjb3VudHMuc2hvcGlmeS5jb20ifWIQr7oBECl0TGOkQEOucvSHCGoQjZTVbF-ITXaG8Z_86G-e6hJAsV1BPTWlCBMK8Yut9ujw444e-8-9pByJrTrJpeCvraCArGxpqXgNzsmwFirAuLPtDGWO1B3FW0MVOP9BnvQaBw
  · Working directory: /Users/hugh/Documents/GitHub/req-testing

09:40:54 │ remix      │ 
09:40:54 │ remix      │  💿  remix dev
09:40:54 │ remix      │ 
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application set "x-powered-by" to true
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application set "etag" to 'weak'
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application set "etag fn" to [Function: 
generateETag]
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application set "env" to 'development'
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application set "query parser" to 'extended'
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application set "query parser fn" to [Function: 
parseExtendedQueryString]
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application set "subdomain offset" to 2
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application set "trust proxy" to false
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application set "trust proxy fn" to [Function: 
trustNone]
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application booting in development mode
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application set "view" to [Function: View]
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application set "views" to 
'/Users/hugh/Documents/GitHub/req-testing/views'
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:application set "jsonp callback name" to 
'callback'
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:router use '/' query
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:router:layer new '/'
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:router use '/' expressInit
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:router:layer new '/'
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:router use '/' jsonParser
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:router:layer new '/'
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:router:route new '/ping'
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:router:layer new '/ping'
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:router:route post '/ping'
09:40:54 │ remix      │ Tue, 20 Feb 2024 17:40:54 GMT express:router:layer new '/'
2024-02-20T17:40:54.615Z: 
Running system process:
  · Command: ruby -v
  · Working directory: /Users/hugh/Documents/GitHub/req-testing

2024-02-20T17:40:54.621Z: 
Running system process:
  · Command: bundle -v
  · Working directory: /Users/hugh/Documents/GitHub/req-testing

2024-02-20T17:40:54.711Z: Reading the content of file at node_modules/@shopify/cli-kit/assets/cli-ruby/Gemfile...
2024-02-20T17:40:54.713Z: 
Running system process:
  · Command: bundle install
  · Working directory: /Users/hugh/Documents/GitHub/req-testing/node_modules/@shopify/cli-kit/assets/cli-ruby

09:40:54 │ remix      │  info  building...
09:40:54 │ remix      │ 2024-02-20T17:40:54.746Z babel program.body[0] ImportDeclaration: enter
09:40:54 │ remix      │ 2024-02-20T17:40:54.746Z babel program.body[0] ImportDeclaration: Recursing into...

// 10,000 lines of babel junk later....

2024-02-20T17:41:08.449Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:41:08.896Z: Request to https://partners.shopify.com/api/cli/graphql completed in 444 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: b94bd3b7-f7e0-4bbd-841a-c1db20c92e8e

2024-02-20T17:41:13.453Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:41:13.962Z: Request to https://partners.shopify.com/api/cli/graphql completed in 506 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: a5cec16d-9a38-4bb4-aead-9248ea900dd5

2024-02-20T17:41:18.455Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:41:18.917Z: Request to https://partners.shopify.com/api/cli/graphql completed in 459 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: a5d544c8-ae50-44de-8183-5181b4ee21c1

2024-02-20T17:41:23.457Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:41:23.875Z: Request to https://partners.shopify.com/api/cli/graphql completed in 413 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: 6e3da751-2bb1-4d5b-b21c-da9e9ff35f45

2024-02-20T17:41:28.460Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:41:28.908Z: Request to https://partners.shopify.com/api/cli/graphql completed in 446 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: 2eb11ea7-ebe7-40e5-bf84-82258b0f50be

2024-02-20T17:41:33.465Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:41:33.939Z: Request to https://partners.shopify.com/api/cli/graphql completed in 470 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: 94f0e0d3-760c-49e6-b71a-1b1390ea4134

2024-02-20T17:41:38.468Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:41:38.913Z: Request to https://partners.shopify.com/api/cli/graphql completed in 443 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: d43e4f93-c96d-41af-a9c6-51ae442eb20e

2024-02-20T17:41:43.471Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:41:44.107Z: Request to https://partners.shopify.com/api/cli/graphql completed in 634 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: e2569c48-2894-4f12-8ae8-bb710369293a

2024-02-20T17:41:48.470Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:41:48.927Z: Request to https://partners.shopify.com/api/cli/graphql completed in 454 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: 115a5cdb-3083-4baa-850b-ac845d8674fb

2024-02-20T17:41:53.474Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:41:53.956Z: Request to https://partners.shopify.com/api/cli/graphql completed in 480 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: 0e3eda93-4096-4dec-856c-9a2f2c2c18e0

2024-02-20T17:41:58.475Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:41:59.166Z: Request to https://partners.shopify.com/api/cli/graphql completed in 688 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: fdb19816-2e91-4dc2-ae06-e79696296a8e

2024-02-20T17:42:03.481Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:42:03.959Z: Request to https://partners.shopify.com/api/cli/graphql completed in 476 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: 92a6a182-52db-4eff-9a09-dc17f0344812

2024-02-20T17:42:08.481Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:42:08.951Z: Request to https://partners.shopify.com/api/cli/graphql completed in 467 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: 3dadf202-57c3-4dcc-87db-f7c675acdcd2

2024-02-20T17:42:13.484Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:42:13.960Z: Request to https://partners.shopify.com/api/cli/graphql completed in 473 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: 48bdcc6c-ebc7-43b0-b0b9-10b1de8a06a4

2024-02-20T17:42:18.490Z: Sending "Partners" GraphQL request:
  query FindAppPreviewMode($apiKey: String!) {
    app(apiKey: $apiKey) {
      developmentStorePreviewEnabled
    }
  }

With variables:
{
  "apiKey": "*****"
}

With request headers:
 - User-Agent: Shopify CLI; v=3.56.2
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: darwin
 - Content-Type: application/json

2024-02-20T17:42:18.925Z: Request to https://partners.shopify.com/api/cli/graphql completed in 432 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"f9e834f7231872722829cb9dec035749"
 - x-request-id: 872f3a3d-4dfb-4f59-8aa7-1e7042abc37e


### Reproduction steps

1. `npm init @shopify/app@latest && cd dirname && npm run shopify app generate extension`
2. `npm run dev`
3. Connect the app to a development store
4. Open the theme editor link, and go to product page
5. Unable to add the app block to the form
6. `npm run deploy && npm run dev`
7.  Open the theme editor link, and go to the product page
8. Able to add the app block to the form
9. Make changes to liquid files in extension dir
10. HMR reloads page, but no changes visible
11. `npm run deploy && npm run dev`
12. Navigate to product page and see changes

### Operating System

Mac OS

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

3.56.2

### Shell

_No response_

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

_No response_

### What language and version are you using in your application?

_No response_
hsdonkin commented 6 months ago

I think I've figured out part of it, which is that the debug log is pointing to the wrong theme extension, which was actually deleted previously in a config push. It's actually still in our partner dashboard, and we can't seem to remove it 😞

Related to https://github.com/Shopify/cli/issues/3343 @isaacroldan if you have time to check this issue out!


10:27:52 │ extensions │ DEBUG [HotReload] Modified: blocks/purchase-widget.liquid
10:27:53 │ extensions │ DEBUG POST https://partners.shopify.com/api/cli/graphql with request_id: 
0a7d8a64-ff33-4c07-8a33-368a1f57a7ce
10:27:53 │ extensions │ DEBUG {"data"=>{"extensionUpdateDraft"=>{"extensionVersion"=>{"config"=>"{\"theme_exte
nsion\":{\"files\":{\"assets\":{\"app.css\":{\"sha256\":\"mm/qfPVk5qlb95kHs5PHHhY2npluQUQ9UCUyZBCJeYY=\",\"siz
e\":9},\"app.js\":{\"sha256\":\"sqDYRTW0ke7RbJaYwH/uYRIlbkgxVsRzvkthkUF63yA=\",\"size\":19,\"blocks\":{\"purch
ase-widget.liquid\":{\"value\":\"Working working\\n\\n\\u003cfieldset class='selling-plan-fieldset' 
data-product='{{ product | json }}'\\u003e\\n  \\u003clegend\\u003ePurchase options\\u003c/legend\\u003e\\n  
{% unless product.requires_selling_plan %}\\n    \\u003cinput type='radio' name='purchase_option'\\u003e 
One-time purchase\\n  {% endunless %}\\n\\n  {% for group in product.selling_plan_groups %}\\n    \\u003cinput
 type='radio' name='purchase_option'\\u003e {{ group.name }}\\n\\n    {% for option in group.options %}\\n    
  \\u003clabel\\u003e{{ option.name }}\\u003c/label\\u003e\\n\\n      \\u003cselect data-position='{{ 
option.position }}'\\u003e\\n        {% for value in option.values %}\\n          \\u003coption\\u003e{{ value
 }}\\u003c/option\\u003e\\n        {% endfor %}\\n      \\u003c/select\\u003e\\n    {% endfor %}\\n  {% endfor
 %}\\n\\u003c/fieldset\\u003e\\n\\n{% schema %}\\n{\\n  \\\"name\\\": \\\"Renewify Purchase Options\\\",\\n  
\\\"target\\\": \\\"section\\\",\\n  \\\"enabled_on\\\": {\\n    \\\"templates\\\": [\\\"product\\\"]\\n  
},\\n  \\\"stylesheet\\\": \\\"app.css\\\",\\n  \\\"javascript\\\": \\\"app.js\\\",\\n  \\\"settings\\\": 
[]\\n}\\n{% endschema %}\\n\",\"locales\":{\"en.default.json\":{\"value\":\"{}\\n\"}", 
"registrationId"=>"36075798529", "context"=>nil, "lastUserInteractionAt"=>"2024-02-20T13:27:53-05:00", 
"location"=>"https://partners.shopify.com/132835/apps/71866449921/extensions/theme_app_extension/36075798529",
 "validationErrors"=>[]}, "userErrors"=>nil}
10:27:53 │ extensions │ Pushed » 'purchase-option-widget' to a draft
10:27:53 │ extensions │ - blocks/purchase-widget.liquid
hsdonkin commented 5 months ago

Another weird aspect to this -- I can hot reload assets such as app.js, for anything .liquid I need to do an app deployment

blanklob commented 5 months ago

I noticed the same issue many times.

hsdonkin commented 5 months ago

Love to get an update on this, we're currently paralyzed trying to develop theme extensions for our app without running multiple deploys per day

blanklob commented 5 months ago

This is really confusing, you can dev theme extensions same with pixels as well there is a cache layer I think and that must be removed on dev.

hsdonkin commented 5 months ago

Yeah we're in a really terrible spot where we're running dev for a theme extension, it's creating a preview theme, but it's pushing updates to a deleted extension. The CLI identifies this extension via the link to the partner dashboard, but it just points at an Unexpected error page.

09:00:08 │ extensions │ Pushing theme...    24%
09:00:09 │ extensions │ Pushing theme...    32%
09:00:10 │ extensions │ Pushing theme...    41%
09:00:10 │ extensions │ Pushing theme...    53%
09:00:11 │ extensions │ Pushing theme...    62%
09:00:11 │ extensions │ Pushing theme...    70%
09:00:13 │ extensions │ Pushing theme...    83%
09:00:14 │ extensions │ Pushing theme...    91%
09:00:14 │ extensions │ Pushing theme...   100%
09:00:15 │ extensions │ ------------------
09:00:15 │ extensions │ 
09:00:15 │ extensions │ --------- Viewing extension…
09:00:15 │ extensions │ Enable your theme app extension:
09:00:15 │ extensions │ https://partners.shopify.com/132835/apps/87959109633/extensions/theme_app_extension/60094840833
09:00:15 │ extensions │ 
09:00:15 │ extensions │ Setup your theme app extension in the host theme:
09:00:15 │ extensions │ https://wlcr-partners.myshopify.com/admin/themes/135135330480/editor
09:00:15 │ extensions │ 
09:00:15 │ extensions │ Preview your theme app extension:
09:00:15 │ extensions │ http://127.0.0.1:9292
09:00:15 │ extensions │ ------------------

This is the graphql response from the network tab:

{
    "data": {
        "app": {
            "id": "87959109633",
            "extensionRegistration": null,
            "__typename": "App"
        }
    }
}
hsdonkin commented 4 months ago

Bumping this if anyone from Shopify is listening, we're still blocked completely on theme extension development for our app. It's a huge bummer!

For some reason when we run shopify app dev, we get

10:41:58 │ extensions │ --------- Viewing extension…
10:41:58 │ extensions │ Enable your theme app extension:
10:41:58 │ extensions │ https://partners.shopify.com/132835/apps/87959109633/extensions/theme_app_extension/60094840833
10:41:58 │ extensions │ 
10:41:58 │ extensions │ Setup your theme app extension in the host theme:
10:41:58 │ extensions │ <LINK REDACTED>
10:41:58 │ extensions │ 
10:41:58 │ extensions │ Preview your theme app extension:
10:41:58 │ extensions │ http://127.0.0.1:9292
10:41:58 │ extensions │ ------------------

This extension link just points at a broken page, probably a deleted extension

image
blanklob commented 4 months ago

Same here !

patrickbolle commented 4 months ago

Same issue. This has completely broken theme app extension development.

github-actions[bot] commented 3 months ago

This issue seems inactive. If it's still relevant, please add a comment saying so. Otherwise, take no action. → If there's no activity within a week, then a bot will automatically close this. Thanks for helping to improve Shopify's dev tooling and experience.

P.S. You can learn more about why we stale issues here.

gavinballard commented 3 months ago

As far as I'm aware, this issue still exists.

github-actions[bot] commented 4 weeks ago

This issue seems inactive. If it's still relevant, please add a comment saying so. Otherwise, take no action. → If there's no activity within a week, then a bot will automatically close this. Thanks for helping to improve Shopify's dev tooling and experience.

P.S. You can learn more about why we stale issues here.