SKUFix — Error codes
Every failed row in a SKUFix report shows a code. Find it below for the cause and the next step.
Before you look up a code
- Nothing is written until you click Apply. The preview reads your catalogue; it never changes it.
- A refusal is not a failure. SKUFix refuses a row when somebody else changed that value after your preview. Overwriting their work silently would be the bug.
- Undo restores the values from the preview, and is itself guarded the same way: a row that changed again since the job is left alone rather than rolled back over someone else’s edit.
Codes
SKU_NOT_FOUND
No variant has this SKU
Nothing was written · safe to run again
Why
The SKU was searched across every product variant in the store and matched none. Usually a typo, a trailing space, or a SKU that lives in another store or another sales channel.
What to do
Open the store's product list, search the SKU, and copy it from there. SKU matching is exact — SKUFix will not guess at a near match.
SKU_NOT_UNIQUE
More than one variant has this SKU
Nothing was written · safe to run again
Why
Shopify allows the same SKU on many variants. When that happens there is no way to tell which one was meant.
What to do
Make the SKU unique in the catalogue first, or edit those variants by hand. SKUFix refuses to pick one — writing to the wrong variant is worse than writing to none.
INVALID_VALUE
That value does not fit this field
Nothing was written · safe to run again
Why
The value was checked against the field before anything was sent. An amount has to be digits with at most two decimal places; a quantity has to be a whole number; a JSON metafield has to parse.
What to do
Correct the value in the row. Catching it here costs nothing — the row never reached Shopify and never counted against your plan.
MISSING_VALUE
No value for this row
Nothing was written · safe to run again
Why
The SKU is there but the value cell is empty.
What to do
Type the value this SKU should get, or remove the row.
MISSING_SKU
A value with no SKU beside it
Nothing was written · safe to run again
Why
This row carries a value but the SKU cell is empty, so there is nothing to apply it to.
What to do
Fill in the SKU, or clear the row. Blank rows are ignored, so an empty row is never a problem on its own.
CONFLICTING_VALUES
The same SKU was given two different values
Nothing was written · safe to run again
Why
This SKU appears on more than one row with a different value each time. Both rows are instructions you typed, and there is no way to tell which one you meant.
What to do
Neither row was applied — nothing was written for this SKU. Delete the row you did not want, or correct one of them, and preview again.
COMPARE_DIGEST_MISMATCH
Someone changed this value after the preview
Nothing was written · safe to run again
Why
The preview recorded a fingerprint of the stored value. When the write ran, the fingerprint no longer matched — another person, another app or a sync job had edited that field in between.
What to do
This is a refusal, not a failure. Nothing was overwritten. Run the preview again to see the current value and decide whether the change still applies.
QUANTITY_MISMATCH
Stock moved after the preview
Nothing was written · safe to run again
Why
Inventory writes carry the quantity seen at preview time. An order, a return or another app changed the quantity before the write landed.
What to do
Nothing was written. Preview again to pick up the current quantity.
VERIFY_MISMATCH
Shopify reported success but the stored value is different
The value was written
Why
The write returned no error, yet reading the field back gave a different value. The usual causes are a rounding or format rule applied on Shopify's side, or another app writing to the same field within the same second.
What to do
Compare the Current and Verified columns in the report. If the difference is only formatting, no action is needed. If not, undo the job and check what else writes to that field.
THROTTLED
Shopify rate-limited the request
Nothing was written · safe to run again
Why
Shopify meters the Admin API by cost. SKUFix backs off and retries five times; this row exhausted all five, which normally means something else was hitting the same store's API budget at the same time.
What to do
Wait a few minutes and run the job again for the rows that failed. Nothing was written for them.
USER_ERROR
Shopify rejected the value
Nothing was written · safe to run again
Why
Shopify returned a validation error without a specific code. The message beside the row is Shopify's own wording and is the accurate description.
What to do
Read the message on the row. It usually names the rule that was broken — a negative amount, a barcode already in use, a metafield type that does not match its definition.
MISSING_LOCATION
No location was chosen
Nothing was written · safe to run again
Why
Inventory quantities are stored per location, so a write cannot be addressed without one.
What to do
Pick a location in the form and preview again.
MISSING_METAFIELD
Namespace, key or type is missing
Nothing was written · safe to run again
Why
A metafield write needs all three. One of them was blank.
What to do
Fill in namespace, key and type, then preview again. The type must match the metafield definition already in the store.
NO_PAYLOAD
Shopify's answer contained no result
Unknown — check the store
Why
The request completed but the response carried neither data nor a usable error. This is either a transient fault on Shopify's side or a bug in SKUFix.
What to do
Do not re-run the job blind. Check the affected rows in the store first — the outcome is genuinely unknown — then re-run only the rows that still need it.
This one is a fault in SKUFix, not something you did. Report it with the date of the job and the field you were editing.
MALFORMED_INPUT
Internal: a bulk line could not be read back
Unknown — check the store
Why
Large jobs are sent to Shopify as a file of one instruction per line. A line in the result file could not be parsed.
What to do
Check the report — rows without this code are unaffected. Re-run only the affected SKUs.
This one is a fault in SKUFix, not something you did. Report it with the date of the job and the field you were editing.
MISSING_PRODUCT
Internal: rows reached the writer without a product
Nothing was written
Why
Variant and tag writes must be grouped by product before they are sent. A row arrived without one, which is a SKUFix bug, not anything done wrong in the store.
What to do
Nothing was written. Please report this along with the job's date and the field being edited.
This one is a fault in SKUFix, not something you did. Report it with the date of the job and the field you were editing.
MISSING_IDEMPOTENCY_KEY
Internal: inventory write had no idempotency key
Nothing was written
Why
Shopify has required an @idempotent key on inventory writes since API version 2026-04. SKUFix generates one per job; this row had none.
What to do
Nothing was written. Please report this.
This one is a fault in SKUFix, not something you did. Report it with the date of the job and the field you were editing.
UNSUPPORTED_FIELD
Internal: unknown field kind
Nothing was written
Why
The field selected has no writer registered. A SKUFix bug.
What to do
Nothing was written. Please report which field was selected.
This one is a fault in SKUFix, not something you did. Report it with the date of the job and the field you were editing.
A code that is not on this list
SKUFix passes Shopify’s own error codes through untouched rather than reworded, so a code you do not find here came from Shopify. The message shown beside the row is Shopify’s exact wording and is the accurate description of what it rejected.
Still stuck
Write to hoangvhuan@gmail.com. Include the code, the field you were editing and roughly when the job ran — that is enough to find it. Please do not send access to your store; it is never needed to answer a question about a code.