Hi, this is a bit of a nitty gritty details question but it affects the shop owner app billing experience and therefore app subscription conversion rates.
My app has multiple plans on offer, and I need to support a /plans page that shows the offerings.
Here’s a very basic multi-tier pricing plan page that’s hosted on my app:
NOTE: the routes /api/plans/basic, /api/plans/pro, and /api/plans/enterprise all execute their respective createAppSubscription queries and return the confirmationUrl in a string.
import { Page } from '@shopify/polaris'
import createApp from '@shopify/app-bridge';
import { Redirect } from '@shopify/app-bridge/actions';
import Cookies from "js-cookie";
import axios from 'axios';
export default function Plans() {
const app = createApp({
apiKey: API_KEY,
shopOrigin: Cookies.get('shopOrigin'),
});
const redirect = Redirect.create(app);
function openPlan(planUrl) {
axios.get(planUrl)
.then((res) => {
redirect.dispatch(Redirect.Action.REMOTE, { url: res.data.confirmationUrl, newContext: false })
})
.catch(err => { console.log(err) })
}
return (
)
}
This works great, the redirect happens and the user is able to accept these plans. However the problem is when they click “Cancel” you would expect to redirect back to the /plans section. However, instead they are redirected to the shop owner’s /apps section.
So if they clicked the wrong plan, they have to go through the hoops of getting back to the /plans section. This is not a great experience and I’d imagine it leads to lost sales.

Am I redirecting the wrong way or is this a bug on Shopify’s side?