Flow action has stale URL

Hey, we have flow_action extension and week ago, we replaced the runtime_url in it. The app was released multiple time since then, yet somehow we are still getting requests to the old url.

Action ID: 3970484895745
https://partners.shopify.com/693759/apps/46606876673/versions/667956740097/extensions/flow_action/3970484895745

Do you have any idea why this is happening? Thanks!

1 Like

Hey @Patrick_Jakubik :waving_hand: - this is expected behaviour per our docs here:

Right now, Flow caches the extension configuration (including the runtime_url) at the time a workflow is created or last saved so that merchants who have workflows that were set up before an update will keep hitting the old URL indefinitely until their workflows are specifically updated (to maintain continuity). Essentially, existing activated workflows will still use the previous version.

Hope this helps, let me know if I can clarify anything on our end here!

Thanks Alan. We completely changed app domain, can we send 308 response and expect Flow to follow the new URL?

Hey again @Patrick_Jakubik :waving_hand: - I was able to connect with our product team on this for you, and at the moment we don’t support 308 responses to allow Flow to follow the new URL, but we’ve logged this as a pain point, and we’re actively exploring improvements. I can’t guarantee what it will look like, but my understanding is that we are aiming to either support redirects or ways to automatically point workflows to updated URLs. A fix is definitely on the horizon, but I can’t guarantee exact timelines or implementation details.

I’ll keep my eyes on this for you and update you when the improvements are live. Let me know if I can clarify anything more on my end here!

Hey @Patrick_Jakubik - just wanted to followup on this for you. We’ve pushed a new feature that should allow you to set 308 redirects on your end and have the Flow Action requests be sent to the new correct domain for your app. Can you let me know if this works on your end? If not, just ping me here and I’d be happy to take a look.

Let me know if I can clarify anything here - hope this helps!

It works perfectly, thanks @Alan_G !!

1 Like

Amazing, glad it works! Thanks again for flagging this, definitely will help other folks in the future, so it’s really appreciated.

Hello, will there ever be a more permanent solution for this? If we deploy a new flow URL, we expect it will update the URL everywhere. We’ve also seen similar behavior with app pixel code, where you need to deactivate and reactivate the pixel when the code is updated. Frankly this does not make sense for large partners with many clients, even though it works okay for our internal apps.

I think a deploy should simply update the URL and the code in both cases. If there was an issue, then that’s why apps are versioned and we can roll them back.

Hey @Kyle_Hooks, thanks for the feedback! Just want to make sure I’m correctly understanding what you’re looking for here.

The 308 redirect solution lets Flow follow URL changes, but you’re right that it requires maintaining redirect infrastructure on your end indefinitely. Are you essentially wanting Flow to automatically update existing workflows to use the new runtime_url when you deploy a new app version, so you don’t need redirects at all?

Definitely understand the operational overhead this creates for folks managing many clients, though, so I can see how this creates friction on your end.

If you’re open to sharing a bit more about your use case I can raise some points internally on my end for sure. I can’t guarantee anything, but I’d be happy to log this as a feature request at the very least. Some good things to know on our end would be how frequently you need to update runtime_urls, and when you do is it typically for infrastructure migrations or other reasons? For example, are you maintaining multiple redirect endpoints as a result?

Let me know if I can clarify anything here and hope to hear back soon.

Hi Alan, just my 2 cents:

In shopify.app.toml you can configure application_url, webhook URLs, and a few other URL related settings. You can make changes any time, and after release they’re immediately deployed across all app installations. The Shopify Flow extension is an outlier here. Not only does it behave differently, but you also cannot enter just a path that resolves to the app URL domain - the full URL needs to be provided. This is quite painful when you have separate development and staging apps. In our case, we have a small script in CI that replaces the Flow extension domain based on the environment, but I’d really love to get rid of it.

2 Likes

Thanks for sharing/clarifying @Patrick_Jakubik , I’ll check in with some folks internally to see if we’re considering any config “declarations” for Flow extensions like we have for other settings in the app.toml framework. I can’t guarantee anything specifically, but just wanted to follow up to let you know I’ll look into this on your behalf and loop back with you ocne I have more info :slight_smile:

Hi Alan. It’s actually pretty rare for us to update these URLs, but because we have several custom flow actions it still caused us a bit of an issue as we had to go through each one and update it manually.

Our use case is essentially that we have multiple versions of our internal app, that we deploy to different stores to test them out before making them live. The app servers for our internal app in each store are hosted separately. If shopify added some kind of built-in support for test stores supporting all extension types (including different root domains for the app servers) and a CI/CD flow to promote changes, then that would prevent us having this problem in the first place, since we are essentially working around the lack of any built-in CI/CD process for apps in Shopify.

However there is the similar issue with pixels, this is from a 3rd party app that a partner of ours develops. They deployed their pixel but we saw no changes until using their app UI to delete and recreate (activate) the pixel again.

Thanks!

This sounds similar to our use case. Our CI/CD process replaces the URLs depending on where they are being deployed.

Yeah, I think what you are asking here is for the Flow URLs to be optionally relative to the application URL, much as how it works with webhooks. Flow is investigating our options here now…I don’t have a timeline yet, but we definitely understand the need/issue.

2 Likes

Thanks @paul_n ! Just confirming also that we’ve logged your report, @Patrick_Jakubik for the issue regarding Flow updating/not-updating URLs for existing workflows. I can’t confirm an exact turnaround time for a fix on that/what a fix would look like, but did want to confirm this is something we are looking at as well.

Thanks! Yes that would definitely help mitigate the issue for us.

1 Like