Bug: Functions are not properly registered or accessible when using new dev dashboard and app dev cmd

When developing with the new Next-Gen Dev Platform (Dev Dashboard + new shopify app dev), Shopify Functions (such as Fulfillment Constraint Rules etc..) are not properly registered properly or accessible via the Admin API for registration, even though they appear as registered in the Dev Dashboard and have UUIDs in their extension TOML files.

This leads to errors such as FUNCTION_NOT_FOUND when trying to register using the Admin API mutations. The same code and configuration work as expected when using the classic Partner Dashboard and CLI flow.


Environment

  • Framework: Remix^2.6.1
  • TypeScript: ^5.8.3
  • Shopify CLI: ^3.80.7
  • @shopify/ui-extensions: ~2025.10.0-rc
  • Node.js: 22.x
  • pnpm: 8.15.4

Steps to reproduce

  1. Create a new app using the Dev Dashboard and the new shopify app dev command.
  2. Add a function extension (e.g Fulfillment Constraint Rule using CLI).
  3. Deploy or preview the app using the new CLI (shopify app dev or shopify app deploy).
  4. Confirm that the function appears as registered in the Dev Dashboard and has a UUID in its shopify.extension.toml.
  5. Attempt to use the function ID in an Admin API mutation (e.g., to create a rule fulfillmentConstraintRuleCreate).
  6. Observe that the API returns an error such as FUNCTION_NOT_FOUND, even though the function appears present in the dashboard and config files.
  7. Repeat the same steps using the classic Partner Dashboard and CLI flow (without changing any code or configuration).
  8. Observe that everything works as expected: the function is recognized and the mutation succeeds.

Expected behavior

  • Functions registered via the new Dev Dashboard and CLI should be accessible via the Admin API using their UUIDs.
  • The behavior should be consistent with the classic Partner Dashboard and CLI flow.

Actual behavior

  • Functions appear as registered in the Dev Dashboard and have UUIDs in their TOML files, but the Admin API returns FUNCTION_NOT_FOUND or similar errors when using these IDs.
  • Switching to a new app created from the classic Partner Dashboard and CLI flow (with no code changes) resolves the issue, and everything works as expected.

Additional notes

  • This issue is not documented in the Early access and limitations section for the Next-Gen Dev Platform.
  • I tested all function UUIDs from the one in shopify.extension.toml file to the one in UI dashboard, and env files, all are the same and cause the same issue.
  • This issue blocks development and testing of any app functionality that relies on Shopify Functions when using the new Dev Platform.

Related issue and possible cause

This functions registration issue directly caused another problem I previously reported, where attempts to save or update rules (for another function of type Order Routing Location Rules) resulted in errors.

Specifically, when attempting to save a custom metafield configuration for an Order Routing Location Rule using a Shopify Admin UI extension, the Admin UI returned an error stating that access to the namespace and key is not allowed, despite the metafield definition being present, correctly configured, and the app having all required scopes.

Possible cause:

When using the new Dev Dashboard and shopify app dev, functions appear as registered in the dashboard and are assigned UUIDs in their TOML files. However, these functions are not actually registered in Shopify’s backend in a way that the Admin API recognizes. As a result, any API mutation that references the function by its ID (such as creating or updating a rule, or saving a metafield configuration for a rule) fails with errors like FUNCTION_NOT_FOUND or metafield access errors. This is why switching back to the classic Partner Dashboard and CLI, which properly registers the function for API usage, immediately resolved both the original and related issues without any code changes.


Suggested action

  • Please clarify in the documentation if this is a known limitation, or address the registration and accessibility of functions in the new Dev Platform so that it matches the classic flow.
  • If this is a bug, please prioritize a fix, as it prevents meaningful development!

Hi Youness – The UUID in the extension.toml is not the functionId, it’s a new app-relative identifier that solves the extension-matching issues you may have seen in the past when deploying. You still need to use the shopifyFunctions query to get the global UUID for the functionId parameter.

We know this is confusing :sweat_smile: … and have some ideas on how to fix this experience. Meanwhile, let us know if the ID in shopifyFunctions works.

-Nick

hey! @NickWesselman thanks for response!

  • Issue is that both look the same, when i use your GetFunctions query, and values from my env file, the ones generated by deploy CLI cmd, they are the same values, none worked! when using new dev platform or cmd.

  • Add to that the original issue i had with location rules, the one i shared above (which dont require any function ID to update the metafield from admin extension, since i use applyMetafieldChange) didn’t work neither, but when i switched to the old app (app created from partner dashboard with same config) it worked.

I actually removed both apps from both dashboard and recreated them with same config file, one worked (old partner dash) and other deosn’t which feel like to me the shopify app dev or deploy cmd fails to register the functions in new dev dashboard.