Custom flow trigger works on dev, wont work on production

I have problem with custom trigger flow.

I create trigger with toml extension and i deployed on app.
But when i run it locally wtih graphql i don’t have error. But when I deployed and try to run it on **Shopify GraphiQL App *
i have error.
I have this in varibales:
{
“handle”: “rechargesubscriptioncancelled”,
“payload”: {
“addressId”: 236042521,
“cancellationReason”: “This was created by accident”,
“cancellationReasonComments”: “”,
“cancelledAt”: “2025-10-13T04:46:02.0000000z”,
“chargeIntervalFrequency”: “1”,
“createdAt”: “2025-10-03T07:57:10.0000000z”,
“customerId”: 213220602,
“email”: “sara.milovanovic@codemancy.tech”,
“expireAfterSpecificNumberOfCharges”: 0,
“hasQueuedCharges”: 0,
“id”: 704012369,
“maxRetriesReached”: 0,
“nextChargeScheduledAt”: “”,
“orderDayOfMonth”: “2”,
“orderDayOfWeek”: “2”,
“orderIntervalFrequency”: “1”,
“orderIntervalUnit”: “month”,
“presentmentCurrency” : “123”,
“price”: 20,
“productTitle”: “Blender Bottle”,
“quantity”: 1,
“rechargeProductId”: 123,
“shopifyProductId”: 8675921199261,
“shopifyVariantId”: 47008151273629,
“sku”: “FW_BlenderBottle_Black”,
“skuOverride”: false,
“status”: “CANCELLED”,
“updatedAt”: “2025-10-13T04:46:02.0000000z”,
“variantTitle”: “Black”
}
}
I dont’t know what is a problem

Are you sure you are using the right API key? If you are using GraphiQL, I think it uses GraphiQLs API key and not the Flow one. Because you are using the wrong app, I believe the Admin wouldn’t be able to match the handle.

Hi, first, thanks for answering.
For what api key do you mean? I’m still new to shopify and this is my firsti project on shopify

Also, i can’t test it through my app then i have error: ShopifySharp.ShopifyGraphUserErrorsException: Errors validating schema:
Failed to parse payload

Are all of those variables defined in your schema in the TOML file?

Yees all, my toml file looks like: [[extensions]]
name = “RechargeSubscriptionCancelled”
handle = “rechargesubscriptioncancelled”
type = “flow_trigger”
uid = “15f0ee46-cc4e-552d-8252-7bf7a61e3a3732d16d68”
description = “Trigger when recharge subscription cancelled”

[settings]

[[settings.fields]]
type = “number_decimal”
key = “addressId”

[[settings.fields]]
type = “single_line_text_field”
key = “cancellationReason”

[[settings.fields]]
type = “single_line_text_field”
key = “cancellationReasonComments”

[[settings.fields]]
type = “single_line_text_field”
key = “cancelledAt”

[[settings.fields]]
type = “single_line_text_field”
key = “chargeIntervalFrequency”

[[settings.fields]]
type = “single_line_text_field”
key = “createdAt”

[[settings.fields]]
type = “number_decimal”
key = “customerId”

[[settings.fields]]
type = “single_line_text_field”
key = “email”

[[settings.fields]]
type = “number_decimal”
key = “expireAfterSpecificNumberOfCharges”

[[settings.fields]]
type = “number_decimal”
key = “hasQueuedCharges”

[[settings.fields]]
type = “number_decimal”
key = “id”

[[settings.fields]]
type = “number_decimal”
key = “maxRetriesReached”

[[settings.fields]]
type = “single_line_text_field”
key = “nextChargeScheduledAt”

[[settings.fields]]
type = “single_line_text_field”
key = “orderDayOfMonth”

[[settings.fields]]
type = “single_line_text_field”
key = “orderDayOfWeek”

[[settings.fields]]
type = “single_line_text_field”
key = “orderIntervalFrequency”

[[settings.fields]]
type = “single_line_text_field”
key = “orderIntervalUnit”

[[settings.fields]]
type = “single_line_text_field”
key = “presentmentCurrency”

[[settings.fields]]
type = “number_decimal”
key = “price”

[[settings.fields]]
type = “single_line_text_field”
key = “productTitle”

[[settings.fields]]
type = “number_decimal”
key = “quantity”

[[settings.fields]]
type = “number_decimal”
key = “rechargeProductId”

[[settings.fields]]
type = “number_decimal”
key = “shopifyProductId”

[[settings.fields]]
type = “number_decimal”
key = “shopifyVariantId”

[[settings.fields]]
type = “single_line_text_field”
key = “sku”

[[settings.fields]]
type = “boolean”
key = “skuOverride”

[[settings.fields]]
type = “single_line_text_field”
key = “status”

[[settings.fields]]
type = “single_line_text_field”
key = “updatedAt”

[[settings.fields]]
type = “single_line_text_field”
key = “variantTitle”

I don’t have schema, just like this

One thing you should do - provide product and variant IDs as reference field types to Flow ( Flow trigger reference ). This allows merchants to use any data tied to the variant or product. Also, if you have the variant technically should don’t need the product, since you can get the product via variant.product.

Regarding your error, nothing is standing out to me, but it could be that you have some assumption wrong. To test the trigger, you need the trigger in an activated workflow and then to send the mutation in that shop to the Shopify API. To see the trigger in Flow, it needs to either be in app dev or deployed.

It might help to see a video of where that error is happening and the current state of your extension

Hi again,
I can’t turn on workflow, always have error: Something is wrong, i gusess some permisssion is not okay, some connection, can you help me with checking, i dont know how?

Check the response code your app returns from the trigger lifecycle callback. It should be 2XX. Otherwise you see the “Something is wrong” error.

@Yuri_K What to use for Url, my app is not published on some server.
@paul_n If you want i can recorder my screen

Ok, sorry. It’s not the case then.

You need the trigger lifecycle callback implemented and returning a 2xx. Otherwise, you won’t know which merchants you need to send events to Shopify for. That is required for building a trigger.

1 Like

@paul_n So, then, my app need to be published on some server?

You need a URL accessible from Shopify, so that we can tell you when you should be sending events.

Did you manage to resolve the issue Sara?