BUG: Handle already taken error

Hi All,

so apparently when creating a new product if the handle would result in a duplicate instead of the previously default behaviour via the rest api that a unique handle would be created we now get an error instead.

{“handle”:[“tasse-xl-relax is already taken by a translation for this resource type”]}

I’m sure thats great for consistency, but how about providing a means of creating the product with the default behaviour? Meaning that the product is created anyway and the handle is made unique e.g. by appending a -1 at the end like it previously did?

This customer happens to actually have two products with the same name, not particularly seo ideal, but I know for a fact that I can create a product with the same name via the Admin and the product would be created with the handle made unique, in this case “tasse-xl-relax-1”, without any intervention.

Please either provide a way to restore this behavior or restore the previous behavior with a way to enforce that handles are unique, we already have a unique value and thats the productID enforcing additional uniqueness for the handle after 19 years seems a bit silly, und unnecessarily restrictive.

And apparently shopify is supposed to handle this automatically according to the dev assistant.

image

Cheers,
Gary

1 Like

Clarification:

I am not providing the handle. According to the changelog from January if I don’t provide a handle in the payload then shopify will automatically handle the duplicates.

I can only assume this bug was introduced with the 2025-07 api release, and unfortuantely retroactively, since I am still on the 2025-01 and we had no issues previously.

Hey @Gary_Gilbert, thanks for reporting this.

Can you share an example mutation you are making that results in this error so I can replicate?

Hey Kyle,

Standard productSet mutation.. I think I have figured the problem out however, I was wondering why the error says that the handle was taken by a translation, and then I started digging, and indeed found that someone translated a product and changed the handle for a product in a translation, which is ok, but it should be so that its actually translated.

they changed the original product handle from “tasse-xl-relax-tasse” german to “tasse-xl-relax” french using a translation app, and then tried to create a product in german with the main handle being “tasse-xl-relax”

My expectation in this case would still be that the new product would automatically get a unique handle e.g. tasse-xl-relax-1 instead of throwing an error.

Cheers,

Gary

Thanks Gary,

I was wondering about that as well as the error seemed odd to mention translations. I’ll check in with our team here to find out if this error is expected and get context on why a unique handle still isn’t being created.

@KyleG-Shopify,

Well I know for a fact that if you duplicate the product from the Admin, even with that wacky translation you get a clean duplicate with a unique handle. If you create a new product (without using duplicate) you also get a unique handle.

I think the only way this could be expected behavior is if I sent the handle along with the payload, otherwise I would expect the api to, in all instances, ensure a unique handle regardless of where the conflicting handle is found.

Cheers,
Gary

It does seem strange for sure. I’ll let you know as soon as I find out more on why this is occurring. I was able to replicate the same error when I tested too.