Skip to main content

Why Your Mailchimp Contact Import Fails (and How to Fix It)

7 min readPipeSheets Team

You exported your contacts, opened Mailchimp's import wizard, and got a vague error or an import that completed with half your subscribers missing. Mailchimp is unusually strict about file formatting, and the errors it reports rarely point at the real problem. The good news: almost every failed import comes down to a handful of fixable issues in the file itself — a rejected file type, the wrong encoding or delimiter, or dirty email values.

What File Format Mailchimp Actually Accepts

Mailchimp imports a comma-separated CSV file or a tab-delimited TXT file. It does not accept Excel workbooks (.xlsx or .xls), vCard (.vcf), Numbers files, or other formats. If you upload an Excel file directly, the import fails before it starts. Always use "Save As" and choose CSV first.

"We Can't Upload That File Type": What Actually Triggers It

This is Mailchimp's most-searched import error, and it's confusing because it often appears on files that end in .csv. The message fires when the upload check decides your file isn't a usable CSV or tab-delimited TXT — and there are four distinct ways that happens.

Trigger 1: The File Genuinely Isn't a CSV

The obvious case first: the file is .xlsx, .xls, .numbers, .vcf, .pdf, or a zipped export. Contact exports from phones and CRMs frequently arrive as vCard or Excel files. Open the file in your spreadsheet app and re-save it as CSV — don't just upload what the source system handed you.

Trigger 2: An Excel File Renamed to .csv

The sneaky case: renaming report.xlsx to report.csv does not convert it. An XLSX file is a ZIP archive of XML data, and it stays one no matter what the filename says, so Mailchimp's check correctly rejects it. The tell: open the "CSV" in a plain text editor — if you see garbled binary starting with PK instead of readable comma-separated rows, it's still an Excel file. Fix it by opening the file in Excel and using File > Save As > CSV UTF-8 (Comma delimited), which actually rewrites the contents.

Trigger 3: Encoding the Parser Can't Read

A file saved in an unusual encoding — UTF-16 from some database and phone exports is the classic case — looks like a text file but reads as alternating null bytes to a UTF-8 parser, so the upload check can't recognize it as a CSV at all. Re-save it explicitly as UTF-8: in Excel choose "CSV UTF-8 (Comma delimited)", or open it in a text editor and use Save As with UTF-8 encoding.

Trigger 4: The File Is Too Big

Oversized files can be rejected at the upload step before any rows are read — Mailchimp's import cap is 60MB per file. A contact list rarely hits that on its own; what inflates files is extra baggage: dozens of unused columns from a CRM export, thousands of trailing empty rows, or a full order-history column pasted alongside the emails. Drop the columns Mailchimp doesn't need, delete the empty rows, and if the file is still over the cap, split it and import in batches.

Same list, before and after cleanup:

contacts.xlsx renamed to contacts.csv   → "we can't upload that file type"
contacts.csv, UTF-16, 34 columns, 74MB  → rejected (encoding + size)
contacts.csv, UTF-8, 4 columns, 2MB     → imports cleanly

The Five Issues That Break Mailchimp Imports

1. Wrong Encoding (Corrupted Names and Accents)

Mailchimp expects UTF-8 encoding. Files saved as ANSI, Windows-1252, or Latin-1 either fail outright or silently corrupt accented characters, so "José" becomes "José" in your campaigns. In Excel, choose "CSV UTF-8 (Comma delimited)" from the format dropdown, not the plain "CSV (Comma delimited)" option, which uses your system's local encoding.

2. Semicolon Delimiters (European Settings)

Mailchimp only reads comma-separated files. Excel installed with French, German, Dutch, Spanish, or other European regional settings defaults to semicolons as the list separator, which produces a file Mailchimp can't parse into columns. If every contact lands in a single field, your delimiter is the culprit.

3. Invalid Email Syntax

The email column is required, and each contact needs exactly one address. Mailchimp rejects rows with missing emails, leading or trailing spaces, unsupported characters, or two addresses crammed into one cell. A stray space before an address (" name@example.com") is enough to flag the row.

Email values that get rejected:

  • Leading or trailing spaces: name@example.com
  • Two emails in one cell: jo@x.com, jo2@x.com
  • Missing the @ symbol or domain
  • Smart quotes or invisible characters pasted from Word or PDFs

4. Missing or Mismatched Headers

Your first row should be column headers, and one column must map to Email Address in the matching step. Exports with a title row above the headers ("Contact Export - March 2026"), merged header cells, or duplicate column names confuse the mapping screen — you'll see data rows offered as field names, or the wrong column matched to email. Delete any decorative rows above the real headers and give every column a unique, simple name before uploading.

5. Overlong Text Fields

Text fields are capped at 255 bytes. Anything longer is clipped. Note that emoji and many accented or non-Latin characters use more than one byte each, so a field can hit the limit well before it reaches 255 visible characters. Notes and address fields are the usual offenders — if a field regularly runs long, leave it out of the import rather than shipping truncated data into your audience.

Fixing the File: Three Routes

In Excel

Open the export, delete any title rows above the headers and any columns you don't need, then use File > Save As and pick "CSV UTF-8 (Comma delimited)" — the UTF-8 variant specifically. To clear stray spaces in the email column, add a helper column with =TRIM(A2), fill it down, and paste it back over the original as values. If your regional settings produce semicolon-delimited files, either switch the list separator in your OS regional settings or route the file through Google Sheets instead.

In Google Sheets

Import the file (File > Import handles XLSX, semicolon CSVs, and most encodings), clean up with Data > Data cleanup > Trim whitespace, then File > Download > Comma-separated values. Sheets always writes UTF-8 with comma delimiters, which quietly fixes triggers 2 and 3 and the delimiter problem in one pass. The trade-off is that it's manual every time, and Sheets can reformat things like phone numbers and dates along the way.

In PipeSheets

Upload the export — CSV or the original XLSX, no manual conversion needed — and run Quick Clean: it trims whitespace from every column (including the invisible spaces that fail email validation), standardizes placeholder values like N/A, removes fully empty rows, and normalizes headers. Add a drop-columns step for the CRM baggage Mailchimp doesn't need, preview the result, and download a UTF-8, comma-delimited CSV that passes the upload check.

Pre-Upload Checklist

Run through this checklist before opening the import wizard:

  • File is a real CSV (readable text in an editor), saved as CSV UTF-8 — not a renamed .xlsx
  • Columns are comma-separated, not semicolon-separated
  • First row is unique, simple column headers with nothing above it
  • Email column is trimmed, with exactly one address per contact
  • Rows with blank or duplicate email addresses are removed
  • Unused columns are dropped; files over 60MB are split into batches

Clean the file once in PipeSheets and save the steps as a reusable pipeline. Every future export from the same CRM or store gets the identical cleanup with one click — same trims, same dropped columns, same headers — instead of starting over in a spreadsheet each send.

If the Import Still Fails

When a structurally clean file still errors, check the import results screen rather than the file: Mailchimp skips individual rows for invalid or previously unsubscribed addresses and reports them after the import, which looks like a partial failure but is per-row filtering. And if contacts imported but merge fields landed in the wrong places, the culprit is almost always the column-matching step — re-import and check each column's assignment instead of accepting the auto-match.

Try the automated solution

PipeSheets can fix these issues automatically. Clean your first file free.

Clean Your CSV