Canceling paid plugin subscriptions = The worst user experience of all time?

I offer a paid monthly plugin on the Creative Cloud marketplace. I was under the assumption that when a user uninstalled the plugin, it would automatically cancel their recurring payments as well.

Not only is that not the case, but the only way for them to apparently cancel these payments is to find some several-month-old “payment confirmed” e-mail from the third-party company FastSpring (assuming they haven’t deleted it), scroll to the bottom to find some tiny “View/Edit Subscription” link, and THEN go in to manually cancel the subscription after they’ve already uninstalled the plugin.

See below from an Adobe support e-mail on this:


"Adobe Team, My Photoshop plugin is available for install using a monthly paid subscription. If a user uninstalls the plugin, will that automatically also cancel the recurring monthly payments? OR do they need to take some additional step to ensure they won’t continue being charged after uninstalling?"


“The user is required to cancel the recurring payment. FastSpring will send an email to the user containing a “View/Edit Subscription” link. The user must click on this link to halt the monthly payment. Screenshot attached for reference”

That is quite literally one of the single worst user experiences I have ever seen in all of my years of web development. I’m going to get so many complaints, over the long run, that it’s tempting me to flat out remove my plugin from the marketplace and completely change my business model.

Is there seriously no way for users to cancel the subscription via the Adobe website, or the Creative Cloud dashboard? The ONLY method is to find some old potentially-deleted e-mail from a third-party payment provider like that?



Good to know. I will avoid Marketplace subscriptions for sure until this is improved.


Think about the several major reasons this is a horrendously terrible user experience:

  1. Adobe doesn’t provide developers with any information whatsoever about users of the plugin. We’re not provided with any contact information via the Developer Distribution portal, we’re not provided with any e-mail addresses that can allow us to contact them, there’s no information about the subscription status of each specific user (ie, installed / uninstalled.) So even if I wanted to, I would have absolutely zero method whatsoever of contacting users who uninstalled the plugin to let them know: “You need to take this additional step of finding some old payment confirmation e-mail that you hopefully didn’t delete – otherwise you’ll continue being charged indefinitely for this plugin you just uninstalled.”

  2. FastSpring doesn’t provide this contact information to us either. So again, zero method to contact these people.

  3. There’s no “pluginUninstalled” event that gets fired, when the user uninstalls a plugin – so we have no ability to programmatically send them to a “How To Uninstall / Cancel Payments” landing page, if / when they do decide to make that decision.

Here is what is going to therefore happen:

–People will uninstall the plugin, expecting that to automatically cancel the recurring payments associated with it.

–They will continue being charged, perhaps for several months – get pissed about it, send our customer support team angry e-mails, and very likely leave 1-star reviews on the listing page, which will (in the long term) seriously compromise our ability to continue growing the business, since this shockingly bad customer experience and those angry 1-star reviews will deter people from installing in the first place.

–This will create lots of additional work on our end, because we’ll need to be constantly sending out refunds to people for this unexpected recurring payments. And not only that, but since neither Adobe nor FastSpring provides information via their portals about how much money specific named individuals have spent on these subscriptions? Since there’s no way for me to go in and find out that “” has been charged 5 monthly payments for the plugin? This will create tons of needed complexity and work on our end – since we’ll probably have to ask them to find all the individual payments they’ve been charged, send us the screenshots to confirm, then we’ll have to go through the hassle of processing all these refunds.

Really just a shockingly bad system you guys have in place for paid plugin subscription cancellations.

My next steps are going to be: 1) Brainstorming any potential way I can maybe make this process slightly easier for users; or 2) Most likely, working to just transition my business model off of the Adobe Marketplace altogether to avoid having to deal with all these associated headaches.

This is just fatal to any long-term subscription-based business model. I think within the next few weeks I’m completely transition to offering my own standalone software via another distribution method, and I’ll work to just completely remove my plugin from the Creative Cloud marketplace.

1 Like

I am just implementing a non-Adobe subscription system into one of the plugin and it can do all that you named here.

Maybe you could check Gumroad or Patreon. They have some API.

I was planning to offer the plugin for install via my own website, then just implement a really simple “subscription confirmation” functionality:

  1. Upon payment? Takes user to Stripe page. Post successful payment, it pushes their contact info to a database via a webhook event.

  2. In the plugin interface? There will be a simple “confirm subscription” text input, where they submit their e-mail, it checks that against the current active users in the database, and if found, grants them access to the functionality.

That is, IF I decide to continue pursuing this business model. It sucks because it’s been getting some solid growth + traction – but it’s a huge pain in the ass to build my own standalone website + payment framework. I was considering pursuing another software business model where I can charge / make substantially more from each customer, since this current model charges $10/month. Not sure. Definitely a real momentum killer, lol…

That’s what I get for violating the classic Law of Control, with regards to business. I knew the risks going into it – and that’s what happens when you put yourself at the mercy of other people or organizations. Crap like this throws a huge wrench in your entire gameplan, and totally compromises your entire business model.

In brainstorming potential methods to make this easier for users, I actually just thought of ANOTHER reason this is a shockingly terrible system:

Let’s say I added an “Uninstall” section to my plugin interface. There I would tell them it’s a 2-step process (as per that Adobe Support instructional e-mail I received): 1) Uninstall the plugin; 2) Visit this link to cancel your recurring payments.

There is absolutely nothing stopping them from just canceling the paid subscription but continuing to use the plugin.

Think about it. As far as I can tell, once installed, there’s nothing inside of the plugin that verifies a user’s paid status. It doesn’t appear to check their e-mail address against the payment status / subscription status. (If it did, it could bind the uninstall event to the unsubscribe event.) There’s apparently no connection or linkage between the two, whatsoever – which is why, to unsubscribe, users are forced to dig up some old “FastSpring payment confirmed” e-mail that they hopefully didn’t delete. So these FastSpring payments are literally just some crappy payment subscription that gets scotch-taped onto the install process and just runs separately, in the background – completely disconnected from the usage of the plugin. LOL.

That has got to just be the last straw for me on the Adobe marketplace. I was trying to salvage this desperate situation, by maybe providing some in-plugin instructions for this process – but really all that will apparently do is, reveal to users, that they can continue using the plugin after canceling their subscription and not need to pay for it.

Stunningly, stunningly awful stuff.

I think the marketplace should recognize it itself and block. If installed in a non-developer way. But I can’t confirm that yet.