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
Running shopify app deploy should complete the extension migration when confirmed, then push the app configuration (including updated redirect URLs in shopify.app.toml) to a new app version.
Actual behavior
The migration prompt for the legacy orders-link (admin_link) extension is shown. Confirming with “Yes” causes the migrateAppModule Partners API mutation to fail with “App not found”. Choosing “No” aborts the deploy. Result: no path to push any config changes — every deploy is blocked.
Notably, the App Management API (app.shopify.com/app_management/unstable/graphql.json) successfully finds the app in the same session (multiple ActiveAppReleaseFromApiKey queries succeed). Only the Partners API migrateAppModule mutation returns “App not found”, suggesting a state mismatch between the two API surfaces for this specific app/extension pairing.
Already escalated through Shopify Support — they couldn’t find anything actionable in their logs and pointed here.
Reproduction steps
- Have an app with a legacy
admin_linkextension (orders-link) originally created via Partner Dashboard cdinto the linked app directory- Run: shopify app deploy
- CLI auto-imports the legacy extension via
import-extensions - CLI prompts:
Migrate "orders-link"? - Select Yes → error: “App not found”
- Select No → command aborts
Verbose output
2026-05-13T09:59:33.713Z: Sending “Partners” GraphQL request:
mutation MigrateAppModule($apiKey: String!, $registrationId: ID, $registrationUuid: String, $type: String!) {
migrateAppModule(
input: {apiKey: $apiKey, registrationId: $registrationId, registrationUuid: $registrationUuid, type: $type}
) {
migratedAppModule
userErrors {
field
message
}
}
}
With variables:
{
“apiKey”: “*****”,
“registrationUuid”: “7517d2b2-8f1d-4401-95d7-f5f56523d3f7”,
“type”: “admin_link”
}
to https://partners.shopify.com/api/cli/graphql
2026-05-13T09:59:34.054Z: Request completed in 340 ms
With response headers:
- x-request-id: 463dcd50-e898-4fc6-becb-670e857e7966-1778666373
╭─ error ──────────────────────╮
│ App not found │
╰──────────────────────────────╯
Earlier in the same session, App Management API calls succeeded:
- query ActiveAppReleaseFromApiKey → 200 OK (x-request-id: 0e10e933-f169-431c-8591-a0dc0a688036-1778666370)
- query fetchSpecifications → 200 OK (x-request-id: 4f8814f0-50cb-4a35-a2e6-29aa7f1fabff-1778666370)
- query ActiveAppReleaseFromApiKey → 200 OK (x-request-id: bfe2e831-77a2-4b8b-9aed-fee36993639a-1778666371)
- query ActiveAppReleaseFromApiKey → 200 OK (x-request-id: ab18db81-9431-49c4-b49a-bddb788fb51b-1778666372)
CLI also reports:
The following extension specifications were defined locally but not found in the remote specifications: admin, order_attribution_config, tax_calculation
The following extension specifications were found in the remote specifications but not defined locally: admin_app
Suggesting the migration is from legacy admin spec → new admin_app spec, but the mutation can’t find the parent app to perform it.
Operating system
macOS Darwin 25.3.0 (Apple Silicon, arm64)
CLI version
3.94.3 (also reproduced on 3.84.1)
Shell
zsh
Nodejs version
v22.14.0
What language and version are you using in your application?
N/A — this app has no local web backend; it’s a config-only app with a single legacy admin_link extension. The web app is hosted externally (Node.js backend on our infra, but irrelevant to the deploy issue which is purely about app configuration).