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?
App
Expected behavior
An [[events.subscription]] handle containing an underscore (e.g. product_core) validates and deploys, as it did on 4.8.5. The docs list _ as allowed for Events subscription handles (“alphanumeric, _, -, max 50 characters”).
Actual behavior
Since 4.9.0, shopify app config use and shopify app deploy reject the config with:
Validation error in shopify.app.toml:
[handle]: Handle can only contain alphanumeric characters and hyphens
The same file passes on 4.8.5. Replacing _ with - in the Events handles makes it pass on 4.9.0.
Subscriptions that already exist with underscores can’t be deployed on 4.9.0, which breaks CI that runs npx @shopify/cli@4 app deploy. Is this an intended change? If it is, renaming a handle changes the Shopify-Handle header that apps route deliveries on.
Reproduction steps
- Add an Events subscription with an underscore in its handle to
shopify.app.toml:
[events]
api_version = "2026-10"
[[events.subscription]]
handle = "product_core"
topic = "Product"
actions = ["update"]
triggers = ["product.title"]
uri = "https://example.com/events"
- Run
npx @shopify/cli@4.9.0 app config use shopify.app.toml: validation error above. - Run
npx @shopify/cli@4.8.5 app config use shopify.app.toml: succeeds. - Change the handle to
product-coreand run 4.9.0 again: succeeds.
Verbose output
Validation error in shopify.app.toml:
[handle]: Handle can only contain alphanumeric characters and hyphens
Operating system
macOS 15
CLI version
4.9.0 (works on 4.8.5)
Shell
zsh
Nodejs version
22.22.3
What language and version are you using in your application?
TypeScript, Node 22