Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[Bug]: Webhook configuration reset when deploying without including config #5229

Open
2 tasks done
y-conrad-tqgg opened this issue Jan 17, 2025 · 2 comments
Open
2 tasks done
Labels
Type: Bug Something isn't working

Comments

@y-conrad-tqgg
Copy link

y-conrad-tqgg commented Jan 17, 2025

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

The webhook configurations defined in the apps toml file should remain persistent in the app configuration after deployment, even when include_config_on_deploy is set to false.

Actual behavior

When deploying the app as part of our CI/CD workflow, we are using shopify app deploy -f to force the deployment. In that case, include_config_on_deploy is set to false by default, disregarding what we defined for this in the previous app version. include_config_on_deploy being false, then leads to the webhook configurations to be removed from the app configuration on every automated deployment. However, even with this setting, existing webhook configurations should not be removed.

For the Verbose output, I set include_config_on_deploy to false manually to be able to reproduce this issue locally.

Verbose output

Verbose output
> [email protected] deploy C:\Users\Yannic.conrad\Documents\Projekte\Shopify\hc-shopify-checkout-app
> shopify app deploy "--verbose"

2025-01-17T16:04:19.654Z: Running command app deploy
2025-01-17T16:04:19.664Z: Notifications to show: 0
2025-01-17T16:04:19.681Z: Reading cached app information for directory C:/Users/Yannic.conrad/Documents/Projekte/Shopify/hc-shopify-checkout-app...
2025-01-17T16:04:19.682Z: Reading the content of file at shopify.app.toml...
2025-01-17T16:04:19.686Z: Reading the content of file at shopify.app.toml...
2025-01-17T16:04:19.688Z: Reading cached app information for directory C:/Users/Yannic.conrad/Documents/Projekte/Shopify/hc-shopify-checkout-app...
2025-01-17T16:04:19.690Z: Reading the content of file at shopify.app.toml...
2025-01-17T16:04:19.692Z: Reading the content of file at shopify.app.toml...
2025-01-17T16:04:19.694Z: Ensuring that the user is authenticated with the Partners API with the following scopes:
[]

2025-01-17T16:04:19.695Z: Getting session store...
2025-01-17T16:04:19.696Z: 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": []
}
}

2025-01-17T16:04:19.700Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2025-01-17T16:04:19.701Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
- User-Agent: Shopify CLI; v=3.73.2
- Keep-Alive: timeout=30
- Sec-CH-UA-PLATFORM: win32
- Content-Type: application/json

2025-01-17T16:04:20.283Z: Request to https://accounts.shopify.com/oauth/introspection completed in 581 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/"dbcdb37d5101d0ae60d49792f12b66d7"
- server-timing: processing;dur=35, socket_queue;dur=1.681, edge;dur=1.1, util;dur=0.15, cfRequestDuration;dur=187.000036
- x-request-id: 8a50b7d0-c2b0-4a44-9451-7e6169c54767-1737129876
  
2025-01-17T16:04:20.287Z: The identity token is valid: true
2025-01-17T16:04:20.294Z:
The validation of the token for application/identity completed with the following results:
- It's expired: false
- It's invalid in identity: false

2025-01-17T16:04:20.295Z: Verifying that the user has a Partner organization
2025-01-17T16:04:20.297Z: Confirmed partner account exists from cache
2025-01-17T16:04:20.298Z: Getting partner account info from cache
2025-01-17T16:04:20.330Z: 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.73.2
- Keep-Alive: timeout=30
- Sec-CH-UA-PLATFORM: win32
- Content-Type: application/json

to https://partners.shopify.com/api/cli/graphql
2025-01-17T16:04:21.263Z: Request to https://partners.shopify.com/api/cli/graphql completed in 926 ms
With response headers:
- cache-control: max-age=0, private, must-revalidate
- content-type: application/json; charset=utf-8
- etag: W/"7a7167656b8a6f330adfba33526d0aea"
- server-timing: processing;dur=581, socket_queue;dur=3.426, util;dur=0.3, cfRequestDuration;dur=737.000227
- x-request-id: b7b9000c-f46c-4c28-9a6c-95165eb61d2c-1737129876
  
2025-01-17T16:04:21.321Z: Sending "Partners" GraphQL request:
query FindOrganization($id: ID!) {
  organizations(id: $id, first: 1) {
    nodes {
      id
      businessName
    }
  }
}

With variables:
{
"id": "2072667"
}

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

to https://partners.shopify.com/api/cli/graphql
2025-01-17T16:04:21.681Z: Request to https://partners.shopify.com/api/cli/graphql completed in 355 ms
With response headers:
- cache-control: max-age=0, private, must-revalidate
- content-type: application/json; charset=utf-8
- etag: W/"422c23e2b05a3f226880f9774d1112d8"
- server-timing: processing;dur=68, socket_queue;dur=2.441, util;dur=0.4, cfRequestDuration;dur=210.000277
- x-request-id: 4438866f-f9d3-4f2e-b49c-0dbfa3accf0c-1737129877
  
2025-01-17T16:04:21.740Z: 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.73.2
- Keep-Alive: timeout=30
- Sec-CH-UA-PLATFORM: win32
- Content-Type: application/json

to https://partners.shopify.com/api/cli/graphql
2025-01-17T16:04:22.087Z: Request to https://partners.shopify.com/api/cli/graphql completed in 339 ms
With response headers:
- cache-control: max-age=0, private, must-revalidate
- content-type: application/json; charset=utf-8
- etag: W/"9b12bcaef3d1d3dced9d09d5f37f6739"
- server-timing: processing;dur=80, socket_queue;dur=1.911, util;dur=0.4, cfRequestDuration;dur=228.999853
- x-request-id: d004c73b-d21d-4c42-acd4-e7da9811cc9b-1737129878
  
2025-01-17T16:04:22.106Z: The following extension specifications were defined locally but not found in the remote specifications: data, payments_extension, tax_calculation
2025-01-17T16:04:22.111Z: Reading the content of file at shopify.app.development.toml...
2025-01-17T16:04:22.111Z: Reading the content of file at shopify.app.testing-do-no-delete-or-change.toml...
2025-01-17T16:04:22.115Z: Reading the content of file at .gitignore...
2025-01-17T16:04:22.118Z: Reading the .env file at .env
2025-01-17T16:04:22.119Z: Reading the content of file at .env...
2025-01-17T16:04:22.126Z: Reading the content of file at extensions/address-extension/shopify.extension.toml...
2025-01-17T16:04:22.127Z: Reading the content of file at extensions/custom-code/shopify.extension.toml...
2025-01-17T16:04:22.128Z: Reading the content of file at extensions/deposit-on-market-change/shopify.extension.toml...
2025-01-17T16:04:22.128Z: Reading the content of file at extensions/blacklisted-customer/shopify.extension.toml...
2025-01-17T16:04:22.128Z: Reading the content of file at extensions/discount-bridge/shopify.extension.toml...
2025-01-17T16:04:22.129Z: Reading the content of file at extensions/footer-links/shopify.extension.toml...
2025-01-17T16:04:22.129Z: Reading the content of file at extensions/gift-card-market-removal/shopify.extension.toml...
2025-01-17T16:04:22.130Z: Reading the content of file at extensions/gift-card/shopify.extension.toml...
2025-01-17T16:04:22.130Z: Reading the content of file at extensions/influencer-discount/shopify.extension.toml...
2025-01-17T16:04:22.131Z: Reading the content of file at extensions/gift-card-item-attributes/shopify.extension.toml...
2025-01-17T16:04:22.131Z: Reading the content of file at extensions/newsletter-notification/shopify.extension.toml...
2025-01-17T16:04:22.131Z: Reading the content of file at extensions/legal-notice-and-privacy-policy/shopify.extension.toml...
2025-01-17T16:04:22.131Z: Reading the content of file at extensions/payment-customization/shopify.function.extension.toml...
2025-01-17T16:04:22.132Z: Reading the content of file at extensions/shipping-discount/shopify.extension.toml...
2025-01-17T16:04:22.132Z: Reading the content of file at extensions/tracking-data/shopify.extension.toml...
2025-01-17T16:04:22.132Z: Reading the content of file at extensions/special-discount/shopify.extension.toml...
2025-01-17T16:04:22.133Z: Reading the content of file at extensions/trustpilot-widget/shopify.extension.toml...
2025-01-17T16:04:22.133Z: Reading the content of file at extensions/usp-widget/shopify.extension.toml...
2025-01-17T16:04:22.133Z: Reading the content of file at extensions/rs-campaign-discount/shopify.extension.toml...
2025-01-17T16:04:22.134Z: Reading the content of file at extensions/order-status/shopify.extension.toml...
2025-01-17T16:04:22.137Z: Reading the content of file at extensions/custom-code/shopify.extension.toml...
2025-01-17T16:04:22.137Z: Reading the content of file at extensions/footer-links/shopify.extension.toml...
2025-01-17T16:04:22.138Z: Reading the content of file at extensions/gift-card/shopify.extension.toml...
2025-01-17T16:04:22.138Z: Reading the content of file at extensions/discount-bridge/shopify.extension.toml...
2025-01-17T16:04:22.139Z: Reading the content of file at extensions/gift-card-market-removal/shopify.extension.toml...
2025-01-17T16:04:22.139Z: Reading the content of file at extensions/newsletter-notification/shopify.extension.toml...
2025-01-17T16:04:22.139Z: Reading the content of file at extensions/legal-notice-and-privacy-policy/shopify.extension.toml...
2025-01-17T16:04:22.139Z: Reading the content of file at extensions/blacklisted-customer/shopify.extension.toml...
2025-01-17T16:04:22.140Z: Reading the content of file at extensions/address-extension/shopify.extension.toml...
2025-01-17T16:04:22.140Z: Reading the content of file at extensions/gift-card-item-attributes/shopify.extension.toml...
2025-01-17T16:04:22.140Z: Reading the content of file at extensions/deposit-on-market-change/shopify.extension.toml...
2025-01-17T16:04:22.140Z: Reading the content of file at extensions/trustpilot-widget/shopify.extension.toml...
2025-01-17T16:04:22.141Z: Reading the content of file at extensions/usp-widget/shopify.extension.toml...
2025-01-17T16:04:22.141Z: Reading the content of file at extensions/shipping-discount/shopify.extension.toml...
2025-01-17T16:04:22.141Z: Reading the content of file at extensions/influencer-discount/shopify.extension.toml...
2025-01-17T16:04:22.141Z: Reading the content of file at extensions/special-discount/shopify.extension.toml...
2025-01-17T16:04:22.142Z: Reading the content of file at extensions/tracking-data/shopify.extension.toml...
2025-01-17T16:04:22.142Z: Reading the content of file at extensions/rs-campaign-discount/shopify.extension.toml...
2025-01-17T16:04:22.142Z: Reading the content of file at extensions/order-status/shopify.extension.toml...
2025-01-17T16:04:22.150Z: Reading the content of file at package.json...
2025-01-17T16:04:22.151Z: Reading the content of file at package.json...
2025-01-17T16:04:22.171Z: 
Running system process:
· Command: npm prefix
· Working directory: C:/Users/Yannic.conrad/Documents/Projekte/Shopify/hc-shopify-checkout-app

2025-01-17T16:04:22.384Z: Obtaining the dependency manager in directory C:\Users\Yannic.conrad\Documents\Projekte\Shopify\hc-shopify-checkout-app...
2025-01-17T16:04:22.386Z: Reading the content of file at package.json...
2025-01-17T16:04:22.637Z: 
Running system process:
· Command: shopify version
· Working directory: C:/Users/Yannic.conrad/Documents/Projekte/Shopify/hc-shopify-checkout-app

╭─ info ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                                                                      │
│  Two Shopify CLI installations found – using local dependency                                                                        │
│                                                                                                                                      │
│  A global installation (v3.73.2) and a local dependency (v3.73.2) were detected.                                                     │
│  We recommend removing the @shopify/cli and @shopify/app dependencies from your package.json, unless you want to use different       │
│  versions across multiple apps.                                                                                                      │
│                                                                                                                                      │
│  See Shopify CLI documentation. [1]                                                                                                  │
│                                                                                                                                      │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
[1] https://shopify.dev/docs/apps/build/cli-for-apps#switch-to-a-global-executable-or-local-dependency

2025-01-17T16:04:24.436Z: Reading the content of file at shopify.web.toml...
2025-01-17T16:04:24.442Z: Notifications to show: 0
2025-01-17T16:04:24.444Z: Reading cached app information for directory C:/Users/Yannic.conrad/Documents/Projekte/Shopify/hc-shopify-checkout-app...
2025-01-17T16:04:24.444Z: Storing app information for directory C:/Users/Yannic.conrad/Documents/Projekte/Shopify/hc-shopify-checkout-app:{
"appId": "***",
"title": "TQG Checkout Discounts - DEV",
"directory": "C:/Users/Yannic.conrad/Documents/Projekte/Shopify/hc-shopify-checkout-app",
"orgId": "***"
}
2025-01-17T16:04:24.471Z: Sending "Partners" GraphQL request:
query activeAppVersion($apiKey: String!) {
  app(apiKey: $apiKey) {
    activeAppVersion {
      appModuleVersions {
        registrationId
        registrationUuid
        registrationTitle
        type
        config
        specification {
          identifier
          name
          experience
          options {
            managementExperience
          }
        }
      }
    }
  }
}

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

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

to https://partners.shopify.com/api/cli/graphql
2025-01-17T16:04:25.255Z: Request to https://partners.shopify.com/api/cli/graphql completed in 781 ms
With response headers:
- cache-control: max-age=0, private, must-revalidate
- content-type: application/json; charset=utf-8
- etag: W/"940b3382b1f95c4e78a5535ecd840e46"
- server-timing: processing;dur=379, socket_queue;dur=7.2, util;dur=0.9, cfRequestDuration;dur=527.999878
- x-request-id: 77db37a3-1e22-4694-aac4-90889752c4e8-1737129881
  
╭─ info ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                                                                      │
│  Using .env for default values:                                                                                                      │
│                                                                                                                                      │
│    • Org:             The Quality Group GmbH                                                                                         │
│    • App:             TQG Checkout Discounts - DEV                                                                                   │
│    • Include config:  No                                                                                                             │
│                                                                                                                                      │
│   You can pass  `--reset`  to your command to reset your app configuration.                                                          │
│                                                                                                                                      │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

?  Include `shopify.app.toml` configuration on `deploy`? Soon, this will no longer be optional and configuration will be included on every deploy.
✔  No, not now

2025-01-17T16:04:42.054Z: Reading the content of file at shopify.app.toml... 
2025-01-17T16:04:42.060Z: Writing some content to file at shopify.app.toml...
2025-01-17T16:04:42.104Z: Sending "Partners" GraphQL request:
query allAppExtensionRegistrations($apiKey: String!) {     
  app(apiKey: $apiKey) {
    extensionRegistrations {
      id
      uuid
      title
      type
      draftVersion {
        config
        context
      }
      activeVersion {
        config
        context
      }
    }
    configurationRegistrations {
      id
      uuid
      title
      type
      draftVersion {
        config
        context
      }
      activeVersion {
        config
        context
      }
    }
    dashboardManagedExtensionRegistrations {
      id
      uuid
      title
      type
      activeVersion {
        config
        context
      }
      draftVersion {
        config
        context
      }
    }
  }
}

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

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

to https://partners.shopify.com/api/cli/graphql
2025-01-17T16:04:44.104Z: Request to https://partners.shopify.com/api/cli/graphql completed in 1993 ms
With response headers:
- cache-control: max-age=0, private, must-revalidate
- content-type: application/json; charset=utf-8
- etag: W/"44a68274edad6f3ff957dafbfe908dd2"
- server-timing: processing;dur=1650, socket_queue;dur=7.373, util;dur=0.7, cfRequestDuration;dur=1789.000034
- x-request-id: 1448d267-7414-4946-b132-7128162856bf-1737129898
  
?  Release a new version of TQG Checkout Discounts - DEV?

 ┃  Extensions:
 ┃  • address-extension
 ┃  • blacklisted-customer
 ┃  • deposit-on-market-change
 ┃  • custom-code
 ┃  • footer-links
 ┃  • gift-card-market-removal
 ┃  • discount-bridge
 ┃  • influencer-discount
 ┃  • gift-card
 ┃  • gift-card-item-attributes
 ┃  • legal-notice-privacy-policy
 ┃  • newsletter-notification
 ┃  • order-status
 ┃  • rs-campaign-discount
 ┃  • payment-customization
 ┃  • shipping-discount
 ┃  • tracking-data
 ┃  • special-discount
 ┃  • trustpilot-widget
 ┃  • usp-widget

?  Release a new version of TQG Checkout Discounts - DEV?
✔  Yes, release this new version

Releasing a new app version as part of TQG Checkout Discounts - DEV

[REMOVED SOME EXTENSION INSTALL LOGS HERE]
  
2025-01-17T16:05:17.111Z: Sending "Partners" GraphQL request:
mutation AppDeploy(
  $apiKey: String!
  $bundleUrl: String
  $appModules: [AppModuleSettings!]
  $skipPublish: Boolean
  $message: String
  $versionTag: String
  $commitReference: String
) {
  appDeploy(
    input: {
      apiKey: $apiKey
      bundleUrl: $bundleUrl
      appModules: $appModules
      skipPublish: $skipPublish
      message: $message
      versionTag: $versionTag
      commitReference: $commitReference
    }
  ) {
    appVersion {
      uuid
      id
      message
      versionTag
      location
      appModuleVersions {
        uuid
        registrationUuid
        validationErrors {
          message
          field
        }
      }
    }
    userErrors {
      message
      field
      category
      details
    }
  }
}

[REMOVED SOME EXTENSION INSTALL LOGS HERE]

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

to https://partners.shopify.com/api/cli/graphql
2025-01-17T16:05:24.235Z: Request to https://partners.shopify.com/api/cli/graphql completed in 7074 ms
With response headers:
- cache-control: max-age=0, private, must-revalidate
- content-type: application/json; charset=utf-8
- etag: W/"27e29fc21461d7f22931177389d086b2"
- server-timing: processing;dur=6501, socket_queue;dur=2.396, util;dur=0.3, cfRequestDuration;dur=6924.000025
- x-request-id: 79c6b92e-4ec5-4ce4-b14e-9a11adabf236-1737129933
  

╭─ success ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                                                                      │
│  New version released to users.                                                                                                      │
│                                                                                                                                      │
│  tqg-checkout-discounts-dev-815 [1]                                                                                                  │
│                                                                                                                                      │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
[1] https://partners.shopify.com/***/apps/***/versions/***

2025-01-17T16:05:24.288Z: 
Running system process:
· Command: npm prefix
· Working directory: C:/Users/Yannic.conrad/Documents/Projekte/Shopify/hc-shopify-checkout-app

2025-01-17T16:05:24.487Z: Obtaining the dependency manager in directory C:\Users\Yannic.conrad\Documents\Projekte\Shopify\hc-shopify-checkout-app...
2025-01-17T16:05:24.785Z: Request to https://monorail-edge.shopifysvc.com/v1/produce completed in 293 ms
With response headers:
- x-request-id: 5b8454bd-6e21-4e25-a822-766a7d7cc197
  
2025-01-17T16:05:24.786Z: Analytics event sent: {
"command": "app deploy",
"time_start": 1737129859656,
"time_end": 1737129924263,
"total_time": 64607,
"success": true,
"cli_version": "3.73.2",
"ruby_version": "",
"node_version": "22.6.0",
"is_employee": false,
"uname": "windows amd64",
"env_ci": false,
"env_plugin_installed_any_custom": false,
"env_plugin_installed_shopify": "[\"@shopify/cli\"]",
"env_shell": "C:\\Program Files\\Git\\usr\\bin\\bash.exe",
"env_device_id": "***",
"env_cloud": "localhost",
"env_package_manager": "pnpm",
"env_is_global": false,
"env_auth_method": "device_auth",
"cmd_app_warning_api_key_deprecation_displayed": false,
"cmd_deploy_flag_message_used": false,
"cmd_deploy_flag_version_used": false,
"cmd_deploy_flag_source_url_used": false,
"cmd_app_all_configs_any": true,
"cmd_app_all_configs_clients": "{\"shopify.app.development.toml\":\"766f7a6cb76afad7315610d26d904a72\",\"shopify.app.toml\":\"d09d3bc6bca000b109b638745cb7a121\"}",
"cmd_app_linked_config_used": true,
"cmd_app_linked_config_name": "shopify.app.toml",
"cmd_app_linked_config_git_tracked": false,
"cmd_app_linked_config_source": "cached",
"project_type": "node",
"app_extensions_any": true,
"app_extensions_breakdown": "{\"ui_extension\":13,\"function\":6,\"payment_customization\":1}",
"app_extensions_count": 20,
"app_extensions_custom_layout": false,
"app_extensions_function_any": true,
"app_extensions_function_count": 7,
"app_extensions_theme_any": false,
"app_extensions_theme_count": 0,
"app_extensions_ui_any": true,
"app_extensions_ui_count": 13,
"app_name_hash": "***",
"app_path_hash": "***",
"app_scopes": "[\"read_customers\",\"read_locales\",\"read_markets\",\"read_metaobjects\",\"read_payment_customizations\",\"write_discounts\",\"write_files\",\"write_payment_customizations\",\"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": 2072667,
"api_key": "****",
"cmd_app_reset_used": false,
"cmd_deploy_confirm_include_config_used": false,
"cmd_deploy_include_config_used": false,
"cmd_deploy_confirm_new_registrations": 0,
"cmd_deploy_confirm_updated_registrations": 20,
"cmd_deploy_confirm_removed_registrations": 0,
"cmd_deploy_confirm_cancelled": false,
"cmd_deploy_confirm_time_to_complete_ms": 23035,
"cmd_all_timing_network_ms": 19200,
"cmd_all_timing_prompts_ms": 39810,
"cmd_all_launcher": "pnpm",
"cmd_all_topic": "app",
"cmd_all_plugin": "@shopify/app",
"cmd_all_force": false,
"cmd_all_verbose": true,
"cmd_all_path_override": true,
"cmd_all_path_override_hash": "***",
"cmd_all_last_graphql_request_id": "79c6b92e-4ec5-4ce4-b14e-9a11adabf236-1737129933",
"cmd_all_timing_active_ms": 5595,
"cmd_all_exit": "ok",
"user_id": "***",
"request_ids": [
  "b7b9000c-f46c-4c28-9a6c-95165eb61d2c-1737129876",
  "4438866f-f9d3-4f2e-b49c-0dbfa3accf0c-1737129877",
  "d004c73b-d21d-4c42-acd4-e7da9811cc9b-1737129878",
  "77db37a3-1e22-4694-aac4-90889752c4e8-1737129881",
  "1448d267-7414-4946-b132-7128162856bf-1737129898",
  "8b2f75a8-5d13-4c3b-a2ed-d552f96a0a79-1737129932",
  "79c6b92e-4ec5-4ce4-b14e-9a11adabf236-1737129933"
],
"args": "--verbose",
"app_name": "payment-functions",
"env_plugin_installed_all": "[\"@shopify/cli\"]",
"metadata": "{\"extraPublic\":{},\"extraSensitive\":{}}"
}
2025-01-17T16:05:24.797Z: Completed command app deploy

Reproduction steps

  1. Add webhook configurations to an apps' toml file.
  2. Deploy the app, including the config. Confirm that the webhook configurations are now included in the app.
  3. Redeploy the app, setting include_config_on_deploy = false this time.
  4. Observe that the webhook configurations are removed from the app after the deployment.

Operating System

Windows 10

Shopify CLI version (shopify --version)

@shopify/cli/3.73.2 win32-x64 node-v22.6.0

Shell

Git Bash

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

v22.6.0

What language and version are you using in your application?

No response

@y-conrad-tqgg y-conrad-tqgg added the Type: Bug Something isn't working label Jan 17, 2025
@isaacroldan
Copy link
Contributor

isaacroldan commented Jan 23, 2025

Hi @y-conrad-tqgg, I believe this is the expected behaviour.

Going over your reproduction steps:

Add webhook configurations to an apps' toml file.

You decide to start using "Declarative Webhooks", great, this means that the source of truth for these webhooks is your toml file.

Deploy the app, including the config. Confirm that the webhook configurations are now included in the app.

Perfect.

Redeploy the app, setting include_config_on_deploy = false this time.

As the property name says, you are deploying your app WITHOUT the details defined in your app.toml file.

Observe that the webhook configurations are removed from the app after the deployment.

Since you decided not to include your declarative webhooks in the last deploy, they are not included in the new version.
This is equivalent as having include_config_on_deploy = true but removing the webhooks from the toml.

It is not recommended to mix deploys with different values of include_config_on_deploy.

In any case, I'll bring this to the webhooks team in case they need to review the current behaviour 👌

Hope this helped and everything is clearer now!

@y-conrad-tqgg
Copy link
Author

Thanks for your response! But from my understanding, since the webhooks are still part of the active app version, they should be deployed even if we deploy without the app toml? According to the Shopify documentation, the active apps' configuration is used if the toml is not included on deployment.

This is true for every part of the configuration except for the webhooks config 🤔

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

No branches or pull requests

2 participants