App Dev GraphQL API responds with internal server error on running shopify app dev when creating payment extension

I have reproduced the issue on the latest CLI version.

Yes, I am on the latest version

I have searched existing posts and this report is not a duplicate.

Yes, this isn’t a duplicate

In which of these areas are you experiencing a problem?

Extension

Expected behavior

The app should have run properly

Actual behavior

It responds with internal server error

Reproduction steps

Following steps as mentioned here: Build an offsite payments extension with Shopify CLI

shopify app init --template none

shopify app generate extension

When prompted for “Type of extension”, select Payments extensions > Offsite

shopify app dev

Verbose output

2025-12-12T09:04:15.759Z: Running command app dev
2025-12-12T09:04:15.766Z: Running system process:
  · Command: C:\Program Files\nodejs\node.exe C:\Users\abdul\AppData\Roaming\npm\node_modules\@shopify\cli\bin\run.js notifications list --ignore-errors
  · Working directory: C:/Users/abdul/Desktop/Projects/Paycaps

2025-12-12T09:04:15.772Z: Notifications to show: 0
2025-12-12T09:04:15.783Z: Reading cached app information for directory C:/Users/abdul/Desktop/Projects/Paycaps...
2025-12-12T09:04:15.783Z: Reading the content of file at shopify.app.toml...
2025-12-12T09:04:15.786Z: Reading the content of file at shopify.app.toml...
2025-12-12T09:04:15.787Z: Ensuring that the user is authenticated with the App Management API with the following scopes:
[]

2025-12-12T09:04:15.787Z: Getting session store...
2025-12-12T09:04:15.788Z: Getting current session ID...
2025-12-12T09:04:15.788Z: 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",
  "https://api.shopify.com/auth/organization.store-management",
  "https://api.shopify.com/auth/organization.on-demand-user-access",
  "https://api.shopify.com/auth/organization.apps.manage"
]
For applications:
{
  "appManagementApi": {
    "scopes": []
  },
  "businessPlatformApi": {
    "scopes": []
  }
}

2025-12-12T09:04:15.788Z: - Token validation -> It's expired: false
2025-12-12T09:04:15.790Z: Sending "BusinessPlatform" GraphQL request:
  query UserInfo {
  currentUserAccount {
    uuid
    email
    organizations(first: 2) {
      nodes {
        name
        __typename
      }
      __typename
    }
    __typename
  }
}

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

to https://destinations.shopifysvc.com/destinations/api/2020-07/graphql
2025-12-12T09:04:15.830Z: Sending "App Management" GraphQL request:
  query ActiveAppReleaseFromApiKey($apiKey: String!) {
  app: appByKey(key: $apiKey) {
    ...AppVersionInfo
    __typename
  }
}

fragment ReleasedAppModule on AppModule {
  uuid
  userIdentifier
  handle
  config
  target
  specification {
    identifier
    externalIdentifier
    name
    managementExperience
  }
}

fragment AppVersionInfo on App {
  id
  key
  organizationId
  activeRoot {
    clientCredentials {
      secrets {
        key
      }
    }
    grantedShopifyApprovalScopes
  }
  activeRelease {
    id
    version {
      name
      appModules {
        ...ReleasedAppModule
      }
    }
  }
}

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

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

to https://app.shopify.com/app_management/unstable/graphql.json
2025-12-12T09:04:16.455Z: Request to https://app.shopify.com/app_management/unstable/graphql.json completed in 623 ms
With response headers:
 - content-type: application/json; charset=utf-8
 - server-timing: processing;dur=187, verdict_flag_enabled;desc="count=7";dur=0.738, _y;desc="311ff13f-b792-44ce-96d6-9b0534cc7f3c", _s;desc="cb26d64f-923f-427a-8f6f-bc3add700ccf", cfRequestDuration;dur=548.000097
 - x-request-id: c53fe3ac-7869-4950-bb5c-a910ae435be4-1765530257

2025-12-12T09:04:16.468Z: Sending "BusinessPlatform" GraphQL request:
  query FindOrganizations($organizationId: OrganizationID!) {
  currentUserAccount {
    organization(id: $organizationId) {
      id
      name
      __typename
    }
    __typename
  }
}

With variables:
{
  "organizationId": "Z2lkOi8vb3JnYW5pemF0aW9uL09yZ2FuaXphdGlvbi8xMjkwMDQ0MjU="
}

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

to https://destinations.shopifysvc.com/destinations/api/2020-07/graphql
2025-12-12T09:04:16.515Z: Sending "App Management" GraphQL request:
  query fetchSpecifications($organizationId: ID!) {
  specifications(organizationId: $organizationId) {
    name
    identifier
    externalIdentifier
    features
    uidStrategy {
      appModuleLimit
      isClientProvided
      __typename
    }
    validationSchema {
      jsonSchema
      __typename
    }
    __typename
  }
}

With variables:
{
  "organizationId": "gid://shopify/Organization/129004425"
}

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

to https://app.shopify.com/app_management/unstable/graphql.json
2025-12-12T09:04:17.046Z: Request to https://app.shopify.com/app_management/unstable/graphql.json completed in 531 ms
With response headers:
 - content-type: application/json; charset=utf-8
 - server-timing: processing;dur=114, verdict_flag_enabled;desc="count=7";dur=0.556, _y;desc="9b1d5911-a6a9-49b2-a572-a5ce0643dc3a", _s;desc="09ad662c-eea9-470b-9377-8a3a4fb74f0e", cfRequestDuration;dur=455.999851
 - x-request-id: f33ff6d2-2af6-4e8d-9863-32f44ba6316d-1765530258

2025-12-12T09:04:17.056Z: The following extension specifications were defined locally but not found in the remote specifications: channel_config, tax_calculation
2025-12-12T09:04:17.056Z: The following extension specifications were found in the remote specifications but not defined locally: admin_app, app_link, app_nav_item, bulk_action, checkout_script_tag, flow_action_definition, flow_trigger_definition, flow_trigger_discovery_webhook, manage_marketplaces, marketing_action, marketing_activity_extension, merchandising_create_publication, merchandising_fulfillment_variant_details, ping_message_callback, pos_link, product_configuration_link, resource_publication_settings, retail_cart_promotion, retail_product_recommendation, subscription_link
2025-12-12T09:04:17.057Z: Reading the content of file at .gitignore...
2025-12-12T09:04:17.260Z: Reading the content of file at extensions/payments/shopify.extension.toml...
2025-12-12T09:04:17.262Z: Reading the content of file at extensions/payments/shopify.extension.toml...
2025-12-12T09:04:17.263Z: Reading the content of file at package.json...
2025-12-12T09:04:17.277Z: Running system process:
  · Command: npm prefix
  · Working directory: C:/Users/abdul/Desktop/Projects/Paycaps

2025-12-12T09:04:17.400Z: Obtaining the dependency manager in directory C:\Users\abdul\Desktop\Projects\Paycaps...
2025-12-12T09:04:17.401Z: Reading the content of file at package.json...
2025-12-12T09:04:17.401Z: Reading the content of file at .shopify/project.json...
2025-12-12T09:04:17.406Z: Notifications to show: 0
2025-12-12T09:04:17.406Z: Unable to decide project type as no web backend
2025-12-12T09:04:17.407Z: Reading cached app information for directory C:/Users/abdul/Desktop/Projects/Paycaps...
2025-12-12T09:04:17.407Z: Storing app information for directory C:/Users/abdul/Desktop/Projects/Paycaps:{
  "appId": "cafb524299d339325ad8c7d457fa618e",
  "title": "paycaps",
  "directory": "C:/Users/abdul/Desktop/Projects/Paycaps",
  "orgId": "129004425"
}
2025-12-12T09:04:17.410Z: Sending "BusinessPlatform" GraphQL request:
  query FetchDevStoreByDomain($domain: String) {
  organization {
    id
    name
    accessibleShops(
      filters: {field: STORE_TYPE, operator: EQUALS, value: "app_development"}
      search: $domain
    ) {
      edges {
        node {
          id
          externalId
          name
          storeType
          primaryDomain
          shortName
          url
          __typename
        }
        __typename
      }
      __typename
    }
    currentUser {
      organizationPermissions
      __typename
    }
    __typename
  }
}

With variables:
{
  "domain": "paycaps-basic.myshopify.com"
}

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

to https://destinations.shopifysvc.com/organizations/api/unstable/organization/129004425/graphql
2025-12-12T09:04:17.849Z: Request to https://destinations.shopifysvc.com/organizations/api/unstable/organization/129004425/graphql completed in 439 ms
With response headers:
 - cache-control: max-age=0, private, must-revalidate
 - content-type: application/json; charset=utf-8
 - etag: W/"02bc51caf3c0c0fe4705d9d4eca610ac"
 - server-timing: processing;dur=58, socket_queue;dur=1.465, util;dur=0.16, cfRequestDuration;dur=387.000084
 - x-request-id: 626f35af-5093-40e4-b4e6-a31a3267bd5d-1765530259

2025-12-12T09:04:17.850Z: Getting a random port...
2025-12-12T09:04:17.852Z: Random port obtained: 64995
2025-12-12T09:04:17.873Z: cloudflared already installed, skipping
2025-12-12T09:04:17.878Z: Running system process:
  · Command: C:/Users/abdul/AppData/Roaming/npm/node_modules/@shopify/cli/bin/cloudflared.exe tunnel --url http://localhost:64995 --no-autoupdate
  · Working directory: C:/Users/abdul/Desktop/Projects/Paycaps

2025-12-12T09:04:17.893Z: 2025-12-12T09:04:17Z 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
2025-12-12T09:04:17Z INF Requesting new quick Tunnel on trycloudflare.com...

2025-12-12T09:04:17.904Z: Sending "App Management" GraphQL request:
  query ActiveAppReleaseFromApiKey($apiKey: String!) {
  app: appByKey(key: $apiKey) {
    ...AppVersionInfo
    __typename
  }
}

fragment ReleasedAppModule on AppModule {
  uuid
  userIdentifier
  handle
  config
  target
  specification {
    identifier
    externalIdentifier
    name
    managementExperience
  }
}

fragment AppVersionInfo on App {
  id
  key
  organizationId
  activeRoot {
    clientCredentials {
      secrets {
        key
      }
    }
    grantedShopifyApprovalScopes
  }
  activeRelease {
    id
    version {
      name
      appModules {
        ...ReleasedAppModule
      }
    }
  }
}

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

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

to https://app.shopify.com/app_management/unstable/graphql.json
2025-12-12T09:04:18.432Z: Request to https://app.shopify.com/app_management/unstable/graphql.json completed in 528 ms
With response headers:
 - content-type: application/json; charset=utf-8
 - server-timing: processing;dur=117, verdict_flag_enabled;desc="count=7";dur=0.528, _y;desc="e8327676-7bfd-4289-885b-6087ca642469", _s;desc="dc042700-176a-4f2a-8071-487997ccf1e3", cfRequestDuration;dur=480.999947
 - x-request-id: f79c8488-22b1-4647-9e73-c221a8629563-1765530259

2025-12-12T09:04:18.446Z: Reading cached app information for directory C:/Users/abdul/Desktop/Projects/Paycaps...
╭─ info ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                                                                                                                   │
│  Using shopify.app.toml for default values:                                                                                                                                       │
│                                                                                                                                                                                   │
│    • Org:             Paycaps Technology                                                                                                                                          │
│    • App:             paycaps                                                                                                                                                     │
│    • Dev store:       paycaps-basic.myshopify.com                                                                                                                                 │
│    • Update URLs:     Yes                                                                                                                                                         │
│                                                                                                                                                                                   │
│   You can pass `--reset` to your command to reset your app configuration.                                                                                                         │
│                                                                                                                                                                                   │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

2025-12-12T09:04:18.470Z: Port 3457 is free
2025-12-12T09:04:18.472Z: Polling tunnel status for cloudflare (attempt 0): starting
2025-12-12T09:04:18.472Z: Getting a random port...
2025-12-12T09:04:18.473Z: Random port obtained: 64998
2025-12-12T09:04:18.976Z: Polling tunnel status for cloudflare (attempt 1): starting
2025-12-12T09:04:19.488Z: Polling tunnel status for cloudflare (attempt 2): starting
2025-12-12T09:04:19.997Z: Polling tunnel status for cloudflare (attempt 3): starting
2025-12-12T09:04:20.507Z: Polling tunnel status for cloudflare (attempt 4): starting
2025-12-12T09:04:21.008Z: Polling tunnel status for cloudflare (attempt 5): starting
2025-12-12T09:04:21.520Z: Polling tunnel status for cloudflare (attempt 6): starting
2025-12-12T09:04:22.021Z: Polling tunnel status for cloudflare (attempt 7): starting
2025-12-12T09:04:22.523Z: Polling tunnel status for cloudflare (attempt 8): starting
2025-12-12T09:04:22.793Z: 2025-12-12T09:04:22Z INF +--------------------------------------------------------------------------------------------+
2025-12-12T09:04:22Z INF |  Your quick Tunnel has been created! Visit it at (it may take some time to be reachable):  |
2025-12-12T09:04:22Z INF |  https://voices-discounted-stat-register.trycloudflare.com                                 |
2025-12-12T09:04:22Z INF +--------------------------------------------------------------------------------------------+

2025-12-12T09:04:22.794Z: 2025-12-12T09:04:22Z INF Cannot determine default configuration path. No file [config.yml config.yaml] in [~/.cloudflared ~/.cloudflare-warp ~/cloudflare-warp]
2025-12-12T09:04:22Z INF Version 2024.8.2
2025-12-12T09:04:22Z INF GOOS: windows, GOVersion: go1.22.2-devel-cf, GoArch: amd64
2025-12-12T09:04:22Z INF Settings: map[ha-connections:1 no-autoupdate:true protocol:quic url:http://localhost:64995]
2025-12-12T09:04:22Z INF cloudflared will not automatically update on Windows systems.

2025-12-12T09:04:22.794Z: 2025-12-12T09:04:22Z INF Generated Connector ID: cbb69282-6422-4826-be92-1c6989036e57

2025-12-12T09:04:22.795Z: 2025-12-12T09:04:22Z INF Initial protocol quic

2025-12-12T09:04:22.795Z: 2025-12-12T09:04:22Z INF ICMP proxy will use 192.168.1.9 as source for IPv4

2025-12-12T09:04:22.799Z: 2025-12-12T09:04:22Z INF ICMP proxy will use 2401:4900:1c61:4ca4:40a3:2905:5d2f:c411 in zone Ethernet as source for IPv6

2025-12-12T09:04:22.801Z: 2025-12-12T09:04:22Z INF cloudflared does not support loading the system root certificate pool on Windows. Please use --origin-ca-pool <PATH> to specify the path to the certificate pool

2025-12-12T09:04:22.801Z: 2025-12-12T09:04:22Z INF Starting metrics server on 127.0.0.1:65000/metrics

2025-12-12T09:04:22.864Z: 2025-12-12T09:04:22Z WRN Your version 2024.8.2 is outdated. We recommend upgrading it to 2025.11.1

2025-12-12T09:04:23.032Z: Polling tunnel status for cloudflare (attempt 9): starting
2025-12-12T09:04:23.505Z: 2025-12-12T09:04:23Z INF Registered tunnel connection connIndex=0 connection=5dfd1de2-936f-4c01-a864-32abb1f72e92 event=0 ip=198.41.192.57 location=del06 protocol=quic

2025-12-12T09:04:23.541Z: Polling tunnel status for cloudflare (attempt 10): connected
2025-12-12T09:04:23.542Z: Getting a random port...
2025-12-12T09:04:23.543Z: Random port obtained: 65003
2025-12-12T09:04:23.543Z: Reading cached app information for directory C:/Users/abdul/Desktop/Projects/Paycaps...
2025-12-12T09:04:23.573Z: Sending "App Management" GraphQL request:
  query ActiveAppReleaseFromApiKey($apiKey: String!) {
  app: appByKey(key: $apiKey) {
    ...AppVersionInfo
    __typename
  }
}

fragment ReleasedAppModule on AppModule {
  uuid
  userIdentifier
  handle
  config
  target
  specification {
    identifier
    externalIdentifier
    name
    managementExperience
  }
}

fragment AppVersionInfo on App {
  id
  key
  organizationId
  activeRoot {
    clientCredentials {
      secrets {
        key
      }
    }
    grantedShopifyApprovalScopes
  }
  activeRelease {
    id
    version {
      name
      appModules {
        ...ReleasedAppModule
      }
    }
  }
}

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

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

to https://app.shopify.com/app_management/unstable/graphql.json
2025-12-12T09:04:24.102Z: Request to https://app.shopify.com/app_management/unstable/graphql.json completed in 528 ms
With response headers:
 - content-type: application/json; charset=utf-8
 - server-timing: processing;dur=113, verdict_flag_enabled;desc="count=7";dur=0.748, _y;desc="c8e8fb8f-86ac-481c-8639-9f9c4b83676b", _s;desc="8a7fc073-bd5b-4fe0-bb6d-eccf8188806d", cfRequestDuration;dur=467.999935
 - x-request-id: 2a07eed8-3eb9-4ac1-9777-d08ea6958d7b-1765530265

2025-12-12T09:04:24.116Z: Reading cached app information for directory C:/Users/abdul/Desktop/Projects/Paycaps...
2025-12-12T09:04:24.116Z: Reading the content of file at shopify.app.toml...
2025-12-12T09:04:24.117Z: Reading the content of file at shopify.app.toml...
2025-12-12T09:04:24.118Z: Reading the content of file at .gitignore...
2025-12-12T09:04:24.121Z: Reading the content of file at extensions/payments/shopify.extension.toml...
2025-12-12T09:04:24.122Z: Reading the content of file at extensions/payments/shopify.extension.toml...
2025-12-12T09:04:24.123Z: Reading the content of file at .shopify/project.json...
2025-12-12T09:04:24.126Z: Notifications to show: 0
2025-12-12T09:04:24.126Z: Unable to decide project type as no web backend
2025-12-12T09:04:24.127Z: Getting a random port...
2025-12-12T09:04:24.128Z: Random port obtained: 65005
2025-12-12T09:04:24.128Z: Storing app information for directory C:/Users/abdul/Desktop/Projects/Paycaps:{
  "directory": "C:/Users/abdul/Desktop/Projects/Paycaps",
  "previousAppId": "cafb524299d339325ad8c7d457fa618e"
}
2025-12-12T09:04:24.147Z: Running system process:
  · Command: npm prefix
  · Working directory: C:/Users/abdul/Desktop/Projects/Paycaps

2025-12-12T09:04:24.268Z: Obtaining the dependency manager in directory C:\Users\abdul\Desktop\Projects\Paycaps...
2025-12-12T09:04:24.769Z: Request to https://monorail-edge.shopifysvc.com/v1/produce completed in 360 ms
With response headers:
 - x-request-id: d193ff36-dc1c-4d66-9cd2-1d67a018e30d

2025-12-12T09:04:24.770Z: Analytics event sent: {
  "command": "app dev",
  "time_start": 1765530255760,
  "time_end": 1765530264131,
  "total_time": 8371,
  "success": true,
  "cli_version": "3.88.0",
  "ruby_version": "",
  "node_version": "24.12.0",
  "is_employee": false,
  "uname": "windows amd64",
  "env_ci": false,
  "env_plugin_installed_any_custom": false,
  "env_plugin_installed_shopify": "[\"@shopify/cli\"]",
  "env_shell": "powershell",
  "env_device_id": "8b8ab4c9bbcdc7bff1b95cb406f39b19c1e1c9ba",
  "env_cloud": "localhost",
  "env_package_manager": "npm",
  "env_is_global": true,
  "env_auth_method": "device_auth",
  "env_is_wsl": false,
  "env_build_repository": "Shopify/cli",
  "cmd_app_warning_api_key_deprecation_displayed": false,
  "cmd_app_all_configs_any": true,
  "cmd_app_all_configs_clients": "{\"shopify.app.toml\":\"cafb524299d339325ad8c7d457fa618e\"}",
  "cmd_app_linked_config_used": true,
  "cmd_app_linked_config_name": "shopify.app.toml",
  "cmd_app_linked_config_git_tracked": true,
  "cmd_app_linked_config_source": "flag",
  "cmd_app_linked_config_uses_cli_managed_urls": true,
  "app_extensions_any": true,
  "app_extensions_breakdown": "{\"payments_extension\":1}",
  "app_extensions_count": 1,
  "app_extensions_custom_layout": false,
  "app_extensions_function_any": false,
  "app_extensions_function_count": 0,
  "app_extensions_theme_any": false,
  "app_extensions_theme_count": 0,
  "app_extensions_ui_any": false,
  "app_extensions_ui_count": 0,
  "app_name_hash": "2b4667df2044538a25cfdc3623821d518cbeafd2",
  "app_path_hash": "c17e0117e97fe10e3c192aa5cac83749706b10da",
  "app_scopes": "[]",
  "app_web_backend_any": false,
  "app_web_backend_count": 0,
  "app_web_custom_layout": false,
  "app_web_frontend_any": false,
  "app_web_frontend_count": 0,
  "env_package_manager_workspaces": true,
  "business_platform_id": 129004425,
  "api_key": "****",
  "cmd_app_reset_used": false,
  "store_fqdn_hash": "2f0a8c219ff3e27a88a8d53437da5319fbe7735f",
  "cmd_dev_tunnel_type": "auto",
  "cmd_dev_urls_updated": false,
  "cmd_app_dependency_installation_skipped": false,
  "cmd_all_timing_network_ms": 2650,
  "cmd_all_timing_prompts_ms": 0,
  "cmd_all_launcher": "unknown",
  "cmd_all_topic": "app",
  "cmd_all_plugin": "@shopify/app",
  "cmd_all_verbose": true,
  "cmd_all_path_override": true,
  "cmd_all_path_override_hash": "c17e0117e97fe10e3c192aa5cac83749706b10da",
  "cmd_all_last_graphql_request_id": "2a07eed8-3eb9-4ac1-9777-d08ea6958d7b-1765530265",
  "cmd_all_timing_active_ms": 5720,
  "cmd_all_exit": "ok",
  "user_id": "84cb474e-7b3a-40e3-ae91-cb8bf9faa86c",
  "request_ids": [
    "c53fe3ac-7869-4950-bb5c-a910ae435be4-1765530257",
    "f33ff6d2-2af6-4e8d-9863-32f44ba6316d-1765530258",
    "626f35af-5093-40e4-b4e6-a31a3267bd5d-1765530259",
    "f79c8488-22b1-4647-9e73-c221a8629563-1765530259",
    "2a07eed8-3eb9-4ac1-9777-d08ea6958d7b-1765530265"
  ],
  "args": "--verbose",
  "app_name": "paycaps",
  "store_fqdn": "paycaps-basic.myshopify.com",
  "env_plugin_installed_all": "[\"@shopify/cli\"]",
  "env_shopify_variables": "{}",
  "metadata": "{\"extraPublic\":{},\"extraSensitive\":{}}"
}
14:34:24 │                  graphiql │ 2025-12-12T09:04:24.777Z: Setting up GraphiQL HTTP server on port 3457...
14:34:24 │               app-preview │ Preparing dev preview on paycaps-basic.myshopify.com
14:34:24 │                extensions │ 2025-12-12T09:04:24.787Z: Setting up the UI extensions HTTP server...                                                                                                                                                                    
14:34:24 │                extensions │ 2025-12-12T09:04:24.791Z: Setting up the UI extensions Websocket server...                                                                                                                                                               
14:34:24 │                extensions │ 2025-12-12T09:04:24.794Z: Setting up the UI extensions bundler and file watching...                                                                                                                                                      
14:34:24 │                     proxy │ Proxy server started on port 64995                                                                                                                                                                                                       
14:34:24 │                  graphiql │ GraphiQL server started on port 3457                                                                                                                                                                                                     
                                                                                                                                                                                                                                                                                
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────                            
│ (d) Dev status │ (a) App info │ (s) Store info │                                                                                                                                                                                          (q) Quit                            
                                                                                                                                                                                                                                                                                
14:34:24 │               app-preview │ 2025-12-12T09:04:24.820Z: File watcher started with 3 paths                                                                                                                                                                              
                                                                                                                                                                                                                                                                                

────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ (d) Dev status │ (a) App info │ (s) Store info │                                                                                                                                                                                          (q) Quit

 ⠙ Preparing dev preview


2025-12-12T09:04:24.939Z: Sending "App Management" GraphQL request:
  mutation CreateAssetURL($sourceExtension: SourceExtension!, $organizationId: ID!) {
  appRequestSourceUploadUrl(
    sourceExtension: $sourceExtension
    organizationId: $organizationId
  ) {
    sourceUploadUrl
    userErrors {
      field
      message
      __typename
    }
    __typename
  }
}

With variables:
{
  "sourceExtension": "BR",
  "organizationId": "gid://shopify/Organization/129004425"
}

With request headers:

────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ (d) Dev status │ (a) App info │ (s) Store info │                                                                                                                                                                                          (q) Quit

 ⠧ Preparing dev preview


2025-12-12T09:04:25.424Z: Request to https://partners-extensions-scripts-bucket.storage.googleapis.com/deployments/app_sources/129004425/b69ce81a-d450-4d76-9708-8242cc408ab8/source.br?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=argo-project-sa%40shopify-tiers.iam.

────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ (d) Dev status │ (a) App info │ (s) Store info │                                                                                                                                                                                          (q) Quit

 ⠇ Preparing dev preview


2025-12-12T09:04:25.452Z: Sending "App Dev" GraphQL request:
  mutation DevSessionCreate($appId: String!, $assetsUrl: String!) {
  devSessionCreate(appId: $appId, assetsUrl: $assetsUrl) {
    userErrors {
      message
      on
      field
      category
      __typename
    }
    __typename
  }
}

With variables:
{
  "appId": "302571126785",
  "assetsUrl": "https://partners-extensions-scripts-bucket.storage.googleapis.com/deployments/app_sources/129004425/b69ce81a-d450-4d76-9708-8242cc408ab8/source.br?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=argo-project-sa%40shopify-tiers.iam.gserviceaccount.com%2F20251212%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20251212T081408Z&X-Goog-Expires=3600&X-Goog-SignedHeaders=host&X-Goog-Signature=9b905317bbb349dec06d0071a84e77dc19a3bf42a29ed247b0f06fe439d5cd7afa1d60313545bce3f92e633bc9c1fa8af9c179b83ba1c3ff647f3f16ca303c93e13246525fc9f73c66c279131ec43d67437f135ccbbff7d5900fdc9b64f49abad270f5299653e0f1dba42d90b4808ca802883cbba30d1e3765325ad48ad22809e0d3e28756cecaf62593452c935e7344ab27e60110de4da8049d5d08a7355a1802cbc38dfb0056e407f4e91deae65030fec6088307d479a294ecf946108b67ba5ab9c0a0cb7dc865f432cb604fa614ff14c20804b573dc3d16acce5460d35c82435e7124cd45d71d2d1fdc3e8ba01b6166748017d22867f0f3fe95422261e553"
}


────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ (d) Dev status │ (a) App info │ (s) Store info │                                                                                                                                                                                          (q) Quit

 ⠸ Preparing dev preview


2025-12-12T09:04:26.618Z: Request to https://paycaps-basic.myshopify.com/app_dev/unstable/graphql.json completed in 1165 ms
With response headers:
 - content-type: application/json; charset=utf-8
 - server-timing: processing;dur=800, verdict_flag_enabled;desc="count=403";dur=10.484, _y;desc="ebf189b7-cf77-4135-903f-451942268bed", _s;desc="2e0fa8c0-d4de-4c39-af84-6848ae0d8fe2", cfRequestDuration;dur=1124.000072, ipv6
 - x-request-id: aea85129-f731-4d2f-8365-d687fd7a0ef3-1765530267

The App Dev GraphQL API responded unsuccessfully with errors: 
Request ID: 84535f5f-244a-484e-829f-ca4e2417755d-1765532372

Operating system

Windows 11

CLI version

3.88.0

Shell

powershell

Nodejs version

v24.12.0

What language and version are you using in your application?

Node 24.12.0

Please respond, anyone from shopify team?

I have seen similar threads on this topic but they are not using the same version of CLI. Also the account from which this is being run is already a payment partner so it shouldn’t be causing issue.

Hey @Abdul_Mannan - I had a look at the logs for the request-id in your verbose output and can confirm that this is a known issue we’re tracking internally. The internal server error you’re seeing happens when running shopify app dev for a brand new payment extension that hasn’t been deployed yet.

The workaround is to run shopify app deploy before running shopify app dev. Once the extension has been deployed at least once, app dev will work without issues.

So your workflow would be:

  1. shopify app generate extension (create your payment extension)

  2. shopify app deploy (deploy it once)

  3. shopify app dev (now this will work for local testing)

This should unblock you while our engineers work on a fix. Let me know if you run into any other issues after trying that!

Thanks for the response! Yes I can confirm that it does work this way.