Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[Bug]: Duplicated handle "tname" in extensions "t:name", "t:name", "t:name", "t:name" and "t:name". Handle needs to be unique per extension. #5383

Open
2 tasks done
midavisbiz opened this issue Feb 11, 2025 · 1 comment
Labels
Type: Bug Something isn't working

Comments

@midavisbiz
Copy link

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

I should be able to run my app. However, upon trying to run it I get an error.

Actual behavior

I just received this error when updating to the latest CLI version 3.75.0. This looks like this is because I have 5 admin links in my app. None of my handles are named "t:name." I have put a sample .toml file below. Looks like it is now using the name instead of the handle as a unique identifier.

[[extensions]]
name = "t:name"

handle = "admin-link-draft-index"
type = "admin_link"

Verbose output

Verbose output
2025-02-11T14:45:21.746Z: Running command app dev
2025-02-11T14:45:21.752Z: Notifications to show: 0
2025-02-11T14:45:21.762Z: Reading cached app information for directory D:/Development/Repos/...
2025-02-11T14:45:21.763Z: Reading the content of file at shopify.app.toml...
2025-02-11T14:45:21.765Z: Reading the content of file at shopify.app.toml...
2025-02-11T14:45:21.767Z: Ensuring that the user is authenticated with the Partners API with the following scopes:
[]

2025-02-11T14:45:21.767Z: Getting session store...
2025-02-11T14:45:21.768Z: 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.apps.manage"
]
For applications:
{
"partnersApi": {
  "scopes": []
}
}

2025-02-11T14:45:21.769Z: - Token validation -> It's expired: false
2025-02-11T14:45:21.769Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2025-02-11T14:45:21.770Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
- User-Agent: Shopify CLI; v=3.75.0
- Keep-Alive: timeout=30
- Sec-CH-UA-PLATFORM: win32
- Content-Type: application/json

2025-02-11T14:45:21.949Z: Request to https://accounts.shopify.com/oauth/introspection completed in 179 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/"27747a2c4721bf351985e10bf27ac48c"
- server-timing: processing;dur=33, socket_queue;dur=0.898, edge;dur=1.019, util;dur=0.2, cfRequestDuration;dur=126.999855
- x-request-id: db2c4af5-9c67-448e-800d-cb368ca28a91-1739285123

2025-02-11T14:45:21.951Z: The identity token is valid: true
2025-02-11T14:45:21.952Z: - Token validation -> It's invalid in identity: false
2025-02-11T14:45:21.952Z: Getting partner account info from cache
2025-02-11T14:45:21.987Z: Sending "Partners" GraphQL request:
query FindApp($apiKey: String!) {
  app(apiKey: $apiKey) {
    id
    title
    apiKey
    organizationId
    apiSecretKeys {
      secret
    }
    appType
    grantedScopes
    applicationUrl
    redirectUrlWhitelist
    requestedAccessScopes
    webhookApiVersion
    embedded
    posEmbedded
    preferencesUrl
    gdprWebhooks {
      customerDeletionUrl
      customerDataRequestUrl
      shopDeletionUrl
    }
    appProxy {
      subPath
      subPathPrefix
      url
    }
    developmentStorePreviewEnabled
    disabledFlags
  }
}

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

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

to https://partners.shopify.com/api/cli/graphql
2025-02-11T14:45:22.710Z: Request to https://partners.shopify.com/api/cli/graphql completed in 723 ms
With response headers:
- cache-control: max-age=0, private, must-revalidate
- content-type: application/json; charset=utf-8
- etag: W/"5db4ee5de008e8bde6a8eb69652fe0ab"
- server-timing: processing;dur=569, socket_queue;dur=2.054, util;dur=0.5, cfRequestDuration;dur=648.999929
- x-request-id: 2be4003d-ab92-40d2-ae80-99e547b1c25e-1739285124

2025-02-11T14:45:22.759Z: Sending "Partners" GraphQL request:
query FindOrganization($id: ID!) {
  organizations(id: $id, first: 1) {
    nodes {
      id
      businessName
    }
  }
}

With variables:
{
"id": "***"
}

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

to https://partners.shopify.com/api/cli/graphql
2025-02-11T14:45:22.977Z: 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/"112e19e8439823e2552eb67bee997bbe"
- server-timing: processing;dur=73, socket_queue;dur=2.076, util;dur=0.5, cfRequestDuration;dur=194.000006
- x-request-id: 71daa19c-c221-4593-98df-8db9b68c9a61-1739285124

2025-02-11T14:45:23.022Z: 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
      }
    }
    validationSchema {
      jsonSchema
    }
  }
}

With variables:
{
"api_key": "***"
}

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

to https://partners.shopify.com/api/cli/graphql
2025-02-11T14:45:23.204Z: Request to https://partners.shopify.com/api/cli/graphql completed in 182 ms
With response headers:
- cache-control: max-age=0, private, must-revalidate
- content-type: application/json; charset=utf-8
- etag: W/"c8b43d3a53bc2611f1bc0ad0aea9a593"
- server-timing: processing;dur=80, socket_queue;dur=4.696, util;dur=0.6, cfRequestDuration;dur=161.999941
- x-request-id: 1559bc68-6e7c-4c13-a744-caea0b51e8c2-1739285125

2025-02-11T14:45:23.212Z: The following extension specifications were defined locally but not found in the remote specifications: payments_extension, tax_calculation
2025-02-11T14:45:23.214Z: Reading the content of file at shopify.app.deploy-dev.toml...
2025-02-11T14:45:23.215Z: Reading the content of file at shopify.app.deploy-prod.toml...
2025-02-11T14:45:23.216Z: Reading the content of file at .gitignore...
2025-02-11T14:45:23.218Z: Reading the .env file at .env
2025-02-11T14:45:23.218Z: Reading the content of file at .env...
2025-02-11T14:45:23.223Z: Reading the content of file at extensions/admin-link-draft-index/shopify.extension.toml...
2025-02-11T14:45:23.224Z: Reading the content of file at extensions/admin-link-draft-order-details/shopify.extension.toml...
2025-02-11T14:45:23.224Z: Reading the content of file at extensions/admin-link-order-details-edit-order/shopify.extension.toml...
2025-02-11T14:45:23.224Z: Reading the content of file at extensions/admin-link-order-index/shopify.extension.toml...
2025-02-11T14:45:23.224Z: Reading the content of file at extensions/admin-link-order-details-create-order/shopify.extension.toml...
2025-02-11T14:45:23.224Z: Reading the content of file at extensions/cart-transformer/shopify.extension.toml...
2025-02-11T14:45:23.224Z: Reading the content of file at extensions/checkout-international-message/shopify.extension.toml...
2025-02-11T14:45:23.225Z: Reading the content of file at extensions/delivery-customization-rush/shopify.extension.toml...
2025-02-11T14:45:23.225Z: Reading the content of file at extensions/order-details-block/shopify.extension.toml...
2025-02-11T14:45:23.225Z: Reading the content of file at extensions/checkout-special-instructions/shopify.extension.toml...
2025-02-11T14:45:23.225Z: Reading the content of file at extensions/pixel/shopify.extension.toml...
2025-02-11T14:45:23.225Z: Reading the content of file at extensions/order-draft-details-block/shopify.extension.toml...
2025-02-11T14:45:23.225Z: Reading the content of file at extensions/order-discount-tiered/shopify.extension.toml...
2025-02-11T14:45:23.225Z: Reading the content of file at extensions/product-details-block/shopify.extension.toml...
2025-02-11T14:45:23.225Z: Reading the content of file at extensions/product-options/shopify.extension.toml...
2025-02-11T14:45:23.228Z: Reading the content of file at extensions/admin-link-draft-index/shopify.extension.toml...
2025-02-11T14:45:23.228Z: Reading the content of file at extensions/admin-link-draft-order-details/shopify.extension.toml...
2025-02-11T14:45:23.228Z: Reading the content of file at extensions/admin-link-order-index/shopify.extension.toml...
2025-02-11T14:45:23.229Z: Reading the content of file at extensions/admin-link-order-details-create-order/shopify.extension.toml...
2025-02-11T14:45:23.229Z: Reading the content of file at extensions/admin-link-order-details-edit-order/shopify.extension.toml...
2025-02-11T14:45:23.229Z: Reading the content of file at extensions/cart-transformer/shopify.extension.toml...
2025-02-11T14:45:23.229Z: Reading the content of file at extensions/checkout-international-message/shopify.extension.toml...
2025-02-11T14:45:23.230Z: Reading the content of file at extensions/order-details-block/shopify.extension.toml...
2025-02-11T14:45:23.230Z: Reading the content of file at extensions/delivery-customization-rush/shopify.extension.toml...
2025-02-11T14:45:23.230Z: Reading the content of file at extensions/checkout-special-instructions/shopify.extension.toml...
2025-02-11T14:45:23.230Z: Reading the content of file at extensions/order-draft-details-block/shopify.extension.toml...
2025-02-11T14:45:23.230Z: Reading the content of file at extensions/order-discount-tiered/shopify.extension.toml...
2025-02-11T14:45:23.230Z: Reading the content of file at extensions/product-details-block/shopify.extension.toml...
╭─ error ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                                                                                                              │
│  Duplicated handle "tname" in extensions "t:name", "t:name", "t:name", "t:name" and "t:name". Handle needs to be unique per extension.                                       │
│                                                                                                                                                                              │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Reproduction steps

  1. Updated to CLI 3.75.0
  2. Create multiple admin link extensions
  3. Run the app

Operating System

Windows 11

Shopify CLI version (shopify --version)

3.75.0

Shell

No response

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

v22.11.0

What language and version are you using in your application?

No response

@midavisbiz midavisbiz added the Type: Bug Something isn't working label Feb 11, 2025
@aaronwhitman
Copy link

I am experiencing the same issue since upgrading to shopify-cli 3.75.0.

My app has 3 extensions that are admin links. Each of the 3 shopify.extension.toml files has a unique value for handle that have not changed before/after the update to 3.75.0. However, each of the three has the same "name" value, and this appears to be the duplication mentioned in the error message.

error: Duplicated handle "[my_app_name]" in extensions "[My_app_name]", "My_app_name]" and "My_app_name]". Handle needs to be unique per extension.

It seems like the name value in each of the 3 TOML files is being used to test uniqueness, instead of the handle values, which have always been three unique strings.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Type: Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants