Fixing CSV upload problems
The CSV upload tells you when something is wrong, but the messages are short. Here is what each one actually means and how to fix it — followed by the more dangerous category: problems that produce no error at all and quietly generate the wrong codes.
"Please upload a file with a .csv extension"
The file does not end in .csv. Almost always it is still an
.xlsx, .xls or .numbers file —
spreadsheet apps do not convert on rename.
Use File → Save As or Export and pick CSV explicitly. In Google Sheets it is File → Download → Comma-separated values.
If it genuinely is comma-separated text with a different extension — a
.txt export — renaming it to .csv is fine.
"No data found in CSV file"
The file parsed but produced no usable rows. Usually one of:
- No header row. The first line must contain column names, because that is what the column dropdowns are built from. A file starting straight into URLs loses its first URL to the header.
- The export is empty. Exporting while a filter is active can produce a file with headers and nothing else. Clear filters and re-export.
- Only blank rows. Rows where every cell is empty are discarded; if that is all there is, nothing remains.
- A stray character before the header. A blank first line or a leftover title row makes the parser read that as the header.
Open the file in a plain text editor rather than a spreadsheet. The first line should be your column names and the second should be real data. CSV formatting covers what a clean file looks like.
"Error parsing CSV: ..."
The parser hit something it could not resolve, and the rest of the message comes from the parser itself. The usual causes are structural:
- Unbalanced quotes. One field opens a quote and never closes it, so everything after is swallowed into a single value. This is the most common structural break.
- Mixed line endings from a file edited on several machines.
- Not actually a CSV — an HTML page or spreadsheet binary saved with the wrong extension.
Re-exporting cleanly from the spreadsheet fixes nearly all of these.
"Please choose which column contains the URLs"
No URL column is selected. The tool guesses on upload — it looks for a
column called exactly url or link, and falls
back to the first column — so this normally resolves itself.
If it did not, the dropdown is showing something unexpected. Name the
column url in your spreadsheet and the guess will land next
time.
"No URLs found in the ... column"
The chosen column exists but every cell in it is empty. Two things cause this far more than any other:
- The wrong column is selected. Check the dropdown against your actual header names — easy to mix up when several columns have similar names.
-
The column holds formulas, not values. If your URLs are
built with
CONCATENATEor= "https://..."&A2, some export paths write the formula rather than the result. Copy the column and Paste Special → Values only before exporting.
The silent problems
These generate a full batch with no warning at all. They are worth checking before a large run, because the codes look perfectly fine and point at the wrong place.
URLs missing their protocol
example.com/page encodes as plain text. Many scanners will
not offer to open it, so the code appears broken to a user while scanning
correctly. Every URL needs https://.
Check with a formula before exporting:
=IF(LEFT(A2,4)="http","ok","MISSING") and filter for
MISSING.
URLs split across columns
A URL containing a comma, exported without quoting, splits into two columns. The URL column then holds a truncated fragment and everything after the comma has shifted right. Codes generate happily and point nowhere useful.
Spreadsheet exports normally quote these correctly. Hand-assembled files
often do not. If your URLs contain commas, confirm they are quoted in the
raw file, or percent-encode the comma as %2C.
Trailing whitespace
A trailing space survives into the encoded value. Some servers tolerate
it; some return a 404. Run TRIM() over the column before
exporting.
Smart quotes and en-dashes
URLs pasted through a word processor pick up curly quotes and en-dashes substituted for hyphens. They look almost identical and are different characters entirely. Build URLs in the spreadsheet, not in a document.
Filenames colliding
If the column you name files after has duplicates, the second gets
_2, the third _3, and so on. Nothing is
overwritten — but the numbering is by order of appearance, so
lavender.png and lavender_2.png are not
self-explanatory later. Pick a column that is genuinely unique, like a SKU
or ID. See
naming files from a
column.
The check that catches all of this
Before generating hundreds of codes, generate three. Delete all but the first three rows, run it, and scan each code from the ZIP.
Thirty seconds of work confirms:
- The right column was encoded
- The URLs resolve to real pages
- Filenames come out as expected
- Size and format are what you wanted
Then run the full file. This catches every silent failure above, which is the entire category that error messages cannot help you with.
If the count in the status message does not match the rows in your spreadsheet, stop and find out why before generating. A mismatch always means something was dropped or misread.