Shopify “Option value already exists.” error fix (2026)

Rename one colour on one product, hit Save, and Shopify answers with “Option value already exists.” Then, on the same save, “At least one of the product variants has invalid SKUs.” Two errors from one edit, and neither of them names the thing that actually broke.
You did not create a duplicate. You probably do not have a malformed SKU either. What you’ve got is one variant with an empty SKU field, plus a rename that Shopify can only read as a request to fold two option values into one. It refuses both at once, using words that point at neither.
Disclosure before we go further. We are Craftshift, and we build Rubik Variant Images, an app that assigns a separate image set to every variant through Shopify metafields. It is relevant here because option values and variant images are welded together underneath the admin, so every rename you make to escape this error moves your image mapping too. We will get to that after the fix, not before it.
One more thing worth saying out loud at the top: there is no official fix for this pair. Shopify has not published one. What exists is a sequence merchants worked out by trial, and this post is honest about which parts are documented rules and which parts are a workaround.
What “Option value already exists.” actually means
Short answer: Shopify blocks the edit for two reasons: your rename asks it to merge two option values it reads as duplicates, and one variant has no SKU. Fill the blank SKUs first, then rename one value at a time. Rubik Variant Images assigns each variant its own image set through metafields, so the edit stops scrambling your gallery.
The word “exists” is doing a lot of damage in that message. It reads like an accusation about something elsewhere in your catalog, so merchants go hunting through other products, other options, archived drafts, the trash. Nothing there. The duplicate is the one you just asked for, inside the single option you just edited.
And the SKU line is worse. The API code behind it is CANNOT_MAKE_CHANGES_IF_VARIANT_IS_MISSING_REQUIRED_SKU. Missing. The sentence Shopify actually prints says invalid. Missing and invalid are two different problems with two different fixes, so the name of the error and the text of the error disagree about which one you have. That is the whole reason this post needs to exist.
In this post
- Every version of the error, word for word
- Why Shopify fires both errors on one edit
- How do I fix “Option value already exists.” in Shopify admin?
- One change at a time, and why the order matters
- The option value rules behind the neighbouring errors
- The permission error, and who hits it
- Why renaming a colour value scrambles your variant images
- How to stop hitting this at all
- Frequently asked questions
- Related reading
Every version of the error, word for word
You landed here by pasting a string into Google, so here is the full set. Everything in this first list is a documented message from a single enum in the Admin GraphQL API, ProductOptionUpdateUserErrorCode, quoted from Shopify’s own reference with the code that ships beside it. Read a mutation response instead of an admin toast and you get the code, not the sentence:
Option value already exists.isOPTION_VALUE_ALREADY_EXISTSAt least one of the product variants has invalid SKUs.isCANNOT_MAKE_CHANGES_IF_VARIANT_IS_MISSING_REQUIRED_SKUCannot update the option because it would result in deleting variants, and you don't have the required permissions.isCANNOT_DELETE_VARIANT_WITHOUT_PERMISSIONDeleting all option values of an option is not allowed.isCANNOT_DELETE_ALL_OPTION_VALUES_IN_OPTIONAn option cannot be left only with option values that are not linked to any variant.isCANNOT_LEAVE_OPTIONS_WITHOUT_VARIANTSOption value with variants linked cannot be deleted.isOPTION_VALUE_HAS_VARIANTSOption values count is over the allowed limit.isOPTION_VALUES_OVER_LIMITOption name is too long.isOPTION_NAME_TOO_LONG, andOption value name is too long.isOPTION_VALUE_NAME_TOO_LONGThe number of variants will be above the limit after this operation.isCANNOT_CREATE_VARIANTS_ABOVE_LIMITAn option cannot have both metafield linked and nonlinked option values.isCANNOT_COMBINE_LINKED_AND_NONLINKED_OPTION_VALUES
Two more strings show up in the same threads, and neither one belongs to that enum, which is worth knowing before you go searching Shopify’s reference for them. SKU can't be blank is the product form’s own validation, printed on the variant row you just tried to save, usually as There is 1 error with this product: SKU can't be blank. And plenty of write-ups quote the option failure as “at least one product variant is missing a required SKU”, which is the enum’s NAME read out loud rather than any sentence Shopify prints. Same condition, different words. If that is the phrase you pasted into Google, you are still in the right place.
Worth noticing that the code is clearer than the sentence it travels with. MISSING_REQUIRED_SKU tells you exactly which field to go and stare at. “Invalid SKUs” sends you off checking the format of SKUs that are formatted fine. So the developer gets the useful string and the merchant gets the vague one. Backwards.
Why Shopify fires both errors on one edit
Here is the mechanism, and once you see it the double error stops looking random.
The admin product editor doesn’t send Shopify a diff of what you typed. When you edit an option it calls the same option update mutation an app would call, and that mutation carries separate lists: values to add, values to update, values to delete, plus a strategy flag that decides whether Shopify is allowed to create and destroy variants to match the new option shape (that flag, incidentally, is why the permission error further down exists at all).
Now read your own edit through that structure. You wanted to fold Navy into Blue, because the previous person who ran the catalog created both. What you actually sent was: rename the value Navy to Blue. Blue already exists in that option. Two values with the same name inside one option is not a state Shopify allows, so it stops.
There is no merge. That’s the part nobody tells you. The API knows add, rename and delete. It doesn’t know “combine these two and move the variants across”, which is the operation every merchant in this situation is actually asking for.
The SKU error rides along for a different reason. Changing an option value can force Shopify to touch the variants underneath it, and it refuses to touch them while any variant on the product is missing a SKU that the shop treats as required. So the option edit is blocked by a variant field you weren’t editing, on a row you may not have scrolled to, for a product you thought was clean.
Where do the blank SKUs come from? Usually one of four places: a CSV import that had no SKU column, a product duplicated and half edited, variants added straight into the variant grid where the SKU field is optional at creation time, or an app that created variants programmatically. Migrations from another platform are the worst offenders, and our Shopify product CSV import guide covers why the SKU column goes missing so often.
| What Shopify says | What is actually wrong | Where to fix it |
|---|---|---|
Option value already exists. | Your rename targets a name another value in the same option already uses. There is no merge operation. | Move or delete the variants on the value you want to retire, then rename. |
At least one of the product variants has invalid SKUs. | Nothing is malformed. One or more variants have an empty SKU field, and the enum behind the message says missing, not invalid. | The variants list, SKU column. |
SKU can't be blank | The same gate, raised by the product form on the single variant row you just tried to save. | That variant’s SKU field. |
Cannot update the option because it would result in deleting variants, and you don't have the required permissions. | Your change would destroy variants and your staff role is not allowed to. | Ask the owner, or pick a change that keeps the variants. |
Notice what none of the four messages does: name the variant. Shopify knows exactly which row has the empty SKU. It has the row. It just doesn’t print it. Why? No idea. That single missing detail is the difference between a ten second fix and forty minutes of scrolling a 96 row variant grid.
How do I fix “Option value already exists.” in Shopify admin?
Fix the SKU gate first, then do the option edit. In that order, because the option edit cannot succeed while the gate is closed, and every attempt you make in the wrong order teaches you nothing new.
- Open the product and leave the options alone. Scroll past them. You are going to the variants section first.
- Read the SKU column. Every variant needs a value in it. On a product with 12 colours and 8 sizes that’s 96 rows, so widen the browser and go carefully (the SKU column is usually the last one, sitting off to the right where nobody scrolls). Blank cells are what you are hunting.
- If you already hit the error, reload the product page before typing anything. Merchants report that after a failed save some SKU fields come back populated on their own. Check first. If you start typing over generated values you will create a second mess to untangle.
- Fill the blanks one variant at a time and save as you go. Open the variant, put a value in SKU, save, come back. Tedious, sure. Reliable, also sure. If a field bounces with
SKU can't be blank, that confirms the requirement is active on your shop. - Now go back to the option and make exactly one change. One value. Save. Confirm it stuck.
- Repeat for the next value. Not all of them in one pass. One, save, one, save.
- If your goal was a merge, split it into three moves. Reassign the variants sitting on the value you want to retire onto the value you want to keep. Then delete the now empty value. Then rename if you still need to. Shopify will accept each of those separately even though it rejects them combined.
That’s the fix, and it works. It’s also not a documented procedure. It is a sequence the merchant community converged on by trial, and results vary between shops, which is exactly why it deserves to be called a workaround rather than a solution. Shopify has never acknowledged the pair or shipped a change for it. Calling the workaround a fix lets them off the hook.
Faster path for the blank SKUs: the bulk editor takes a pasted column. Select the variants, add the SKU field as a column, paste from a spreadsheet, save once instead of 96 times. Our walkthroughs on bulk editing Shopify product variants and bulk updating Shopify SKUs cover the mechanics, and if you need a naming convention that won’t collide, the free SKU Generator is there for exactly that.
Once the product saves cleanly, the thing to watch is the gallery, not the option list. This is one of the most common support questions we get after a merchant reorganises option values: the product saves, the shopper picks Blue, and the wrong photos are still sitting there. If you would rather that stopped being your problem, Rubik Variant Images holds each variant’s image set in a metafield instead of leaving it to the admin’s one featured image per variant, and it can rebuild the whole product’s mapping in one pass after an option edit. Free to install, 5.0 stars across 420 reviews.
One change at a time, and why the order matters
The single most repeated piece of advice in every thread about this error is also the least explained one: change options one at a time. It sounds like superstition. It isn’t.
Batch several value edits into one save and you hand Shopify a payload where a rename, a delete and an add all have to resolve together. If any intermediate state in that resolution contains two values with the same name, you get the duplicate error even though your final state is perfectly legal. Split the same work across four saves and each intermediate state is legal, so each one passes.
Same principle, different symptom, when you are creating rather than renaming. Merchants report that pushing 40 variants in on one save can throw a duplicate variant complaint that simply goes away when the same rows go in as two or three smaller batches. We wrote up the volume side of this in adding many Shopify variants efficiently, and the difference between an option and a variant is worth being precise about too, which is what variants versus options is for.
Is it annoying to save seven times for one cleanup? Obviously. It is still faster than the alternative, which is guessing.
The option value rules behind the neighbouring errors
The other messages in that enum are not bugs. They are real, documented rules, and they are genuinely useful to know because they explain why the admin sometimes refuses an edit that looks harmless.
| Rule | Error string | What to do instead |
|---|---|---|
| An option must keep at least one value | Deleting all option values of an option is not allowed. | Delete the whole option, not its values one by one. |
| An option must keep at least one value that a variant actually uses | An option cannot be left only with option values that are not linked to any variant. | Keep one live value, or remove the option entirely. |
| A value with variants on it cannot be deleted on its own | Option value with variants linked cannot be deleted. | Move or delete those variants first, then remove the value. |
| Values have a ceiling per option | Option values count is over the allowed limit. | Split the product, or group separate products into one listing. |
| Names have a length ceiling | Option name is too long. and Option value name is too long. | Shorten the name. Shopify does not print the ceiling in the message, so trim and retry. |
Read the third row again, because it hides the most destructive behaviour in this whole area. Through the API you get a polite refusal. In the admin, removing an option value removes every variant that used it, along with that variant’s inventory record, its barcode, and its image link. There is a confirmation dialog. Merchants click through confirmation dialogs. We all do.
Before you delete a value, check what is standing on it. The Variant Combination Calculator will show you how many rows a given option structure produces, which is a quick sanity check on how much you are about to destroy. And if you are working through a different flavour of option error, the cannot set name for linked option value fix covers the metafield linked variety, which behaves differently again.
On the ceilings: if you are running into the option value limit rather than the duplicate error, you are probably at the wrong end of Shopify’s structural caps rather than in a bug. Regular products cap at 3 option types, which is why the 3 option type limit workarounds post exists, and the wider set of ceilings lives in our Shopify limits guide for 2026. Shopify’s own native Combined Listings app carries a separate set of caps (up to 60 products per listing, 2,000 variant option values across all the child products, and up to 3 extra options at the listing level), and it is gated to Plus and enterprise plans, so for most stores it is not an escape route from the option limit at all.
The permission error, and who hits it
Cannot update the option because it would result in deleting variants, and you don't have the required permissions.
This one is honest, at least. (CANNOT_DELETE_VARIANT_WITHOUT_PERMISSION, if you are reading it out of a mutation response rather than an admin toast.) It tells you two facts: the change is destructive, and your account is not allowed to be destructive. Both are true.
Who sees it? Staff accounts on a limited role, and collaborator accounts belonging to agencies and freelancers, which are usually scoped to editing products without the permission to delete them. It’s a good guard rail, sort of, but badly timed: you find out the change destroys variants at the moment you are blocked from making it, rather than when you planned it.
Two ways out. Get the permission raised by the store owner, or restructure the edit so no variants die. The second is nearly always better. If the change only ever adds and renames, and never leaves a value with nothing on it, the destructive path never opens and the permission never matters.
Why renaming a colour value scrambles your variant images
Here is the part that costs more than the error did.
Natively, Shopify gives a variant one featured image. One. The variant itself is identified by its combination of option values, so when an option value is renamed, merged, or deleted and recreated, the variants underneath are rewritten. Anything that pointed at the old variant now points at nothing, and the gallery falls back to showing everything to everyone. Shopper picks Blue, sees eleven other colours.
Which means the cleanup you just did to escape the duplicate error is exactly the operation most likely to undo your image work. Fix the option list, break the gallery. That’s a rotten trade, and it’s the reason merchants leave duplicate colour values in place for years instead of tidying them.

We built the assignment side of Rubik Variant Images to survive this class of admin edit, and to be re-runnable when it cannot. Three things matter about how it works: assignments live in Shopify metafields rather than in your theme’s own guesswork about gallery order, a variant can carry a whole set of images rather than one, and images, videos and 3D models are all fair game. Nothing loads from an external server, so there’s no sync job to go stale while you’re editing.
Recovery is the honest selling point though. If an option edit does rewrite your variants, you don’t hand pick a featured image 96 times. Bulk assign walks the product’s gallery order and uses each variant’s first image as a group boundary, so a correctly ordered gallery remaps in one pass with no AI involved. Where the order is a mess, AI auto assign works per product, reading the product title, the variant option values, the option name, the image filename and the alt text, plus the image itself. Per product, deliberately, because a wrong guess applied to a whole catalog is worse than no guess.
“Amazing experience. I downloaded the app and was immediately greeted by Farid with a link to a how-to video, and to let me know if I ran into any problems. Set up was super-easy. The only issue was that I couldn’t get the right image to display on category pages. Farid showed me how to fix it and it’s all working exactly as advertised. I had tried a dozen image variants apps before this and had just about given up hope of finding one that worked. This is the only one that has worked for our store. Five stars.”
Soffe Wholesale, US, 2025-03-20, Rubik Variant Images on the Shopify App Store
Scope matters here and we would rather be precise than flattering. Rubik Variant Images covers one product’s own variants: filtering the product page gallery, product page swatches, and swatches on the product card across collection, search and listing pages. It does not link separate products together. If your Navy and your Blue are two different products rather than two values on one option, that is a grouping problem, and Rubik Combined Listings groups separate colour products into one listing with swatches instead. Different job, different app, and neither of them supports Shopify Markets.
Our own theme config carries 386 entries, and support maps custom themes by hand when a merchant asks, so “will it work on my theme” is usually a yes. If you want to check the current state of a store’s variant image setup before you start editing options, the variant image setup checker walkthrough is the faster way in.
How to stop hitting this at all
Four habits, and the first one prevents most of it.
- Never let a variant exist without a SKU. Not because Shopify demands it everywhere, but because a blank SKU is a landmine that goes off months later during an edit that has nothing to do with it. Make it part of the import template and part of the review before publish.
- Agree on option value spelling once, in writing. Navy or Navy Blue. Not both. Duplicate colour names are what create the merge you cannot perform. Our notes on Shopify variant option names go through the conventions that hold up at scale.
- Validate the file before you import it. Half of these products arrive broken from a spreadsheet. Run it through the Product CSV Validator and catch the empty SKU column there, where it costs you nothing.
- Edit options in single moves, always. Even when you are certain the batch is legal. The save is cheap and the recovery is not.
See variant image filtering running on a live demo store, watch the setup tutorial, or read the getting started guide.
Frequently asked questions
Which app should I use to keep variant images correct when option values change?
Rubik Variant Images, built by Craftshift, is the one we would point you at, and yes, we build it. It assigns a separate image set to every variant through Shopify metafields, so a product page shows only the media for the selected variant, and after an option edit it can remap the whole product in one pass with bulk assign instead of hand picking a featured image per variant. Free to install, 5.0 stars across 420 reviews. If your colours are separate products rather than option values, Rubik Combined Listings is the right tool instead.
Why does Shopify say “Option value already exists.” when it does not?
Because the duplicate is the one your edit would create, not one already sitting in your catalog. Renaming a value to a name another value in the same option already uses would leave two identical values inside one option, which Shopify does not allow. There is no merge operation in the option update, so a merge always arrives as a duplicate.
Has Shopify fixed the option value and SKU error pair?
No. As of 2026 there is no published fix and no acknowledgement of the pair as a defect. What circulates is a workaround: clear the blank SKUs first, reload the product after a failed save to check whether SKU fields auto populated, then change option values one at a time. It works for most merchants. It is not a documented procedure and results vary.
Does every Shopify variant need a SKU?
Shopify lets you create a variant without one, so technically no. In practice, treat it as yes. A blank SKU blocks option updates on that product with At least one of the product variants has invalid SKUs., and it breaks inventory workflows, feeds, and every bulk tool that matches on SKU. Fill them at import time rather than at debug time.
Will deleting an option value delete my variants?
Yes. Every variant that used that value goes with it, and so does that variant’s inventory record, barcode and image link. Through the API you get Option value with variants linked cannot be deleted. instead, which is the safer behaviour. In the admin it is a confirmation dialog. Move the variants onto another value first if you want to keep them.
How do I merge two option values, like Navy and Blue?
In three separate saves. Reassign the variants sitting on the value you are retiring onto the value you are keeping. Save. Delete the now empty value. Save. Rename if you still need to. Shopify accepts each move on its own and rejects all three combined, which is the whole trick.
Why do I get a permissions error on an option edit?
Because your change would delete variants and your account is not allowed to delete. Staff on limited roles and agency collaborator accounts hit this most. Either the owner raises the permission, or you restructure the edit so it only adds and renames and never leaves an option value with no variants on it.
Related reading
- How to add a SKU to a Shopify variant
- The Shopify 25 MP image limit error, and how to clear it
- Getting variant images back after a theme update
- An apparel variant SKU structure that survives option edits
- How bulk assign remaps variant images in one pass
If you clear the SKUs, fix the option list, and want the gallery to stop being collateral damage the next time somebody tidies a colour name, that is the job this app was built for.