← All Commerce Manager errors

Fix “IDs can't be duplicated” in Meta Commerce Manager

Updated 20 September 2026 · 3 min read

Short answer. Commerce Manager shows “IDs can't be duplicated” when more than one product in the feed carries the same content id; each id must be used once, is case sensitive, and must differ from every item_group_id. Give every variant its own id (the platform’s variant id or a unique SKU) and share the group id among variants of one product.

Shown in Commerce Manager asIDs can't be duplicated
Attributeid
EffectProduct disapproved
Where to find itCatalog → Products → a product’s Status and issues; feed-level errors under Catalog → Data sources → Download issue report
Free checkReported by the free feed check

What Commerce Manager means by “IDs can't be duplicated

Meta’s data feed troubleshooting page requires a unique content id for each product, used once in the catalogue and different from every group id, and stresses that the field is case sensitive (abc123 and ABC123 are two products). The product data specification adds the practical advice: use the SKU where possible, up to 100 characters, and for Advantage+ catalogue ads make it match the content id your Meta Pixel sends.

When ids repeat, one row overwrites another and a product silently goes missing, so the issue is worth fixing even when the rows look identical.

Why it happens

How to fix it

In Shopify

Use variant ids as content ids, which is Shopify’s channel default. Make sure the same value is what your pixel sends as content_ids, or ads lose the match.

In WooCommerce

Variations have their own post ids; our free plugin uses them, with the parent id as the group. Exports keyed on SKU need every variation to have a distinct SKU first.

In a CSV or XML feed

Sort by id and find repeats. Variants of one product get their own ids and a shared item_group_id; true duplicates get deleted. Keep the ids you settle on: Meta ties the product, and your pixel’s events, to them.

How long until Commerce Manager clears it

On the next upload with unique ids; previously overwritten rows appear as products.

What FeedRobin does about it

The free feed check counts rows whose id an earlier row already used and reports them as critical; we keep the first and never serve a duplicate. Which of two rows is the real product is your catalogue’s call, so we do not merge them.

Questions merchants ask

Are abc123 and ABC123 the same id?

No. Meta’s specification says the field is case sensitive and gives exactly that example: they create two different products. Uniqueness is checked on the exact string.

Should the id be the SKU?

Meta suggests the SKU where possible, and for Advantage+ catalogue ads the id must match the content id your pixel sends. Whatever you choose, keep it stable; a changed id is a new product with no history.

Do variants need separate ids?

Yes. Every size and colour is its own row with its own content id; the variants of one product share an item_group_id, which must itself be unique and different from any id.

Sources

Related errors

ID conflicts with group IDFix “ID conflicts with group ID” in Meta Commerce Manager
Product disapproved
A required field is missingFix “A required field is missing” in Meta Commerce Manager
Product disapproved

Read next

Facebook & Instagram catalog: why products get rejected (and what Meta only pretends to require)The wrong-format import trap, availability words Meta doesn't know, images ads can't use, price mismatches, ungrouped variants and unstable IDs — plus the fields Meta lists as required but never enforces.
7 min
WooCommerce variable products in Google Shopping: one row per variation, groupedA variable product exported as one row has no price, one image and no sizes; exported as variations without a group id, its sizes compete as strangers. What Google wants from a variable product, how a feed should carry it, and the WooCommerce settings that make the grouping work.
7 min
Not sure what's wrong with your feed?Paste your feed URL and FeedRobin checks every product for missing barcodes, images, descriptions and more — free, no account needed.
Check my feed — it's free What it checks →