I’ve just followed this guide. Firstly with the app on my dev store, when I go to Shipping and Delivery, then click Add Delivery Customisation, I select the function but that just redirects me to the app within the store and doesn’t seem to add it.
So I tried deleting the app from the store, then installing from my dev dashboard. I then tried to run deliveryCustomizationCreate but just get the following. Am I missing something else? I can confirm the extension (delivery customisation) was deployed on the latest version.
{
"data": {
"deliveryCustomizationCreate": {
"deliveryCustomization": null,
"userErrors": [
{
"message": "Function hide-free-shipping not found. Ensure that it is released in the current app (2315872), and that the app is installed."
}
]
}
},
"extensions": {
"cost": {
"requestedQueryCost": 10,
"actualQueryCost": 10,
"throttleStatus": {
"maximumAvailable": 20000,
"currentlyAvailable": 19990,
"restoreRate": 1000
}
}
}
}
Just to add a bit more, I tried querying the following and I was able to see my extension, so I’m not sure why it isn’t working when passing the handle.
{
shopifyFunctions(first: 250) {
edges {
node {
id
title
}
}
}
}
You’ll need to run the deliveryCustomizationCreate mutation from your app since the Function handles are app-scoped. The tutorial will need to be updated to reflect this, but in the meantime, here’s more information on the introduction of Function handles.
Hope that helps! Let me know if you encounter any other issues with the tutorial and we’ll get it updated
The dev assistant basically told me what I already knew. I hope you guys have a way to handle extension-only situations otherwise this is an awful change.
I was able to get around this by using 2025-07 and passing the functionId (after querying shopifyFunctions to find it).
But I’ve now just installed the extension-only app on the client/production store, tried querying shopifyFunctions to grab the ID but now I’m getting no functions being returned
Got the same problem with a cartTransform Function..
It’s an Extension Only App, but I’m required to create the cartTransform Object using the Admin API Add a customized bundle function
This is fine for development (using the GraphiQL Explorer) but I can’t actually do anything for production as it’s an extension only App so I don’t have the Access Token
I can’t just setup i.e. a Custom App because it will say “function not found” as it’s not part of the same App
I can’t fetch the Access Token as that would require an installation step with a redirect (thus requiring a back-end, ergo not extension only app).
Oh I didn’t think of the complications this would cause for extension-only apps!
You’re right this a massive blocker. Let me see if we can get this resolved as soon as possible.
Alright, looked into this and confirmed that extension-only apps can still utilize functionId in the 2025-10 API version. It hasn’t been removed at all so you’re safe to continue using it as usual.
Your concerns are completely fair considering it is marked as deprecated, and I appreciate you sharing them. We don’t have immediate plans to remove functionId, but we’re always looking for ways to improve the developer experience. If we do make changes in the future, we’ll ensure any new solution works well for different types of apps.
Personally, I’d like to see Functions become available immediately on stores without all these Admin API calls, similar to how UI Extensions work.
RE Functions being made available straight away, it would be nice if Extension Only Apps had some built-in settings to simply turn functions on/off.
Could the documentation be updated to reflect that developers have to use the Function ID (not handle) when ‘installing’ their functions on extension only apps? I feel it will save a lot of confusion.
Built-in setting to turn functions on/off would be very convenient!
Thanks for sharing your feedback Ceri. It’s possible to use handle with extension-only apps, though a minimal backend is needed to support this. If this isn’t an option, functionId would need to be used instead. I’ll make sure to add this information to our docs for clarity.
HI @Paige-Shopify , another spanner in the works (so to speak) - normally I’d just create a Custom App (for the store) to fetch Admin API Credentials that can be used to then install the function - however come January 2026 this won’t be possible making it even more difficult to have extension only apps with functions
I was just about to ask the both of you how the Admin API mutation is currently being run. It sounds like the approach being used differs from the ones I’m familiar with. These are the options I know:
Provide instructions to merchants for using the GraphiQL app
Use the GraphiQL app on the merchant shop via Collaborator access
Have a minimal backend
Thanks for the heads up about encountering another blocker for activating Functions. Let me see if I can arrange a better path forward for extension-only apps