Why CSV needs quotes
A delimiter separates fields, so a value that contains the delimiter needs protection. Double quotes are the usual CSV mechanism. The same applies when a field contains a line break.
Valid comma inside a field
sku,title,price
A1,"Shirt, Blue",19.99The title is one field even though it contains a comma.
Valid quote inside a quoted field
A2,"12"" Display",249.00A literal double quote inside a quoted field is represented by two double quotes. This is easy to break when data is edited manually or passed through software that changes quote characters.
Multiline fields are legal
A3,"First line
Second line",10.00A line break inside a quoted field does not end the record. A parser must maintain quote state while reading multiple physical lines.
Missing closing quote
A4,"Broken title,12.00
A5,Next product,15.00The parser may treat the second physical line as part of the first field because the quote never closed. This is why a single error can produce a surprising row count or a cascade of column mismatches.
Stray quote
A6,Blue 12" Shirt,19.99Whether this is valid depends on the parser and quoting rules. If the field is not quoted correctly, the quote can trigger an import error. A repair tool should show the row and context instead of deleting every quote automatically.
Curly quotes are different characters
Typography tools can replace straight ASCII quotes with curly opening and closing quotation marks. A destination may treat these as ordinary text instead of CSV delimiters. This is especially relevant to Shopify’s “illegal quoting” troubleshooting.
Why automatic quote repair is dangerous
If the tool cannot prove where a quote was intended, inserting or deleting one can change field boundaries and therefore change the meaning of the data. CSVFixLab reports ambiguous quote problems and disables automatic repair when re-serialization is unsafe.
A practical debugging sequence
- Confirm the delimiter.
- Locate the first row where quote state becomes invalid.
- Inspect the row before and after that location.
- Compare the expected field count with the parsed field count.
- Correct the smallest possible portion of the source data.
- Re-run the structural check before importing.
A measured missing-quote example
The broken-quotes lab case contains a header and two intended data records. With the closing quote missing, the worker reports only one parsed data record, a column-count issue, and a MissingQuotes issue at record 2. Automatic repair is blocked. The manually corrected synthetic example rechecks as two data records and three columns with no reported errors.
The missing quote is placed using the deliberately defined fixture values. That manual example does not mean the tool can identify the intended boundary in an unknown production file. A source export or documented schema is needed for that decision.
Record numbers and physical line numbers
CSVFixLab issue locations are parser record numbers, including the header. They are not guaranteed to match an editor's physical line numbers. The valid multiline example above occupies two physical lines inside one field. A missing quote can also combine later lines into one parsed record. When following an importer's line number, inspect its surrounding source text rather than assuming that it is the same location as this checker's record number.
What a clean quote report proves
CSVFixLab uses Papa Parse for its structural checks. The test suite checks that valid quoted commas, doubled double quotes, and multiline field values survive serialization unchanged. Quote-parser errors block automatic repair. A clean report describes this parser's result; another importer may apply different quoting rules or additional field requirements. Test the output with the intended destination before replacing production data.