Lab Case · Blocked

Two CSV columns with the same header name

The rows are rectangular, but downstream field mapping becomes ambiguous when two columns share an identical name.

Reproducible fixture
Issue: duplicate headerOutcome: repair blockedRows: rectangular

Fixture

name,price,price
Blue Shirt,19.99,USD
Red Shirt,24.50,USD

Why this is structurally risky

The table has three values per row, so column count alone looks healthy. The problem is the header: both the second and third columns are named price. A destination that maps values by header name cannot reliably distinguish a numeric price from the currency text in this fixture.

Why automatic renaming would be guessing

Renaming the third column to currency seems reasonable to a person reading these two rows, but the CSV file itself does not define that meaning. Another dataset could use the second price as wholesale price, compare-at price, tax-inclusive price, or something else.

Upload the fixture

The checker should report the repeated header name.

Check the source schema

Find the real field names in the exporting system or import template.

Rename intentionally

Use the exact destination field name rather than an inferred label.

Run preflight again

Confirm every non-empty header is unique.

Decision: duplicate headers are diagnosed, not auto-renamed.

Measured worker results

Executed 2026-10-11 using the CSVFixLab worker handler and the downloadable fixture bytes. These are controlled synthetic tests. No customer file or live Shopify import was used.

Manual example: the synthetic schema defines the third column as currency. A production file needs its own source schema.

Worker mode: repair. The table records the worker's serialization decision. Diagnosis-only tool pages do not offer a repair download button.

On a small screen, scroll the table horizontally to read every column.

RunData recordsColumnsWorker permits serializationReported issues
Original fixture · utf-823Noduplicate-header: Header "price" appears more than once.
Corrected example · rechecked with Auto23YesNo issues detected by these checks

Corrected fixture

name,price,currency
Blue Shirt,19.99,USD
Red Shirt,24.50,USD

Download corrected example · Download complete measured reports

Fixture identity and test scope

Original SHA-256: 5fa6783c02c288057305921e552973d7523fde59bc39e59b92f0453d815fc295

Corrected SHA-256: 5b8723642b829e0076b2f8e18c3010d29a617c178d7da46a6e38dea81dfc0b41

Node v24.19.0; actual worker handler with File-compatible byte input; no Shopify live import. Record numbers refer to parsed CSV records, including the header, rather than physical lines. The test checks reported errors and, for automatic conversions, equality of the parsed field values. It does not establish compatibility with every importer.