Operelio
CRM imports & cleanup17 min read

Why your HubSpot import is failing

A HubSpot import fails when the file itself is rejected, when its columns don't match HubSpot properties, or when single values such as dates, numbers or dropdown options don't parse. Open the import from the imports list and download the error file to see which: it lists each failing row with its error.

By Operelio team · Updated October 23, 2026

On this page14
  1. 1.First, get the real error
  2. 2.Error message lookup
  3. 3.The file itself was rejected
  4. 4.Your columns did not match HubSpot
  5. 5.Individual values were rejected
  6. 6.Duplicates and identifiers
  7. 7.Importing companies and contacts together
  8. 8.It said it worked, but nothing changed
  9. 9.The ones you cannot fix in the file
  10. 10.The imports that do not fail
  11. 11.Importing an Apollo export into HubSpot
  12. 12.A checklist that prevents most of it
  13. 13.Fixing it once instead of per error
  14. 14.Frequently asked questions

First, get the real error

HubSpot does not fail an import as one lump. It imports the rows it can and lists the rows it could not, with a reason against each. That list is the useful part, and it is easy to miss.

Open the import from the imports list and download the error file. It gives you the failing rows with the error name attached, which turns a vague failure into a specific fix. Everything below is keyed to those error names.

Worth knowing before you go back to the spreadsheet: some of it can be fixed inside the import tool. At the mapping stage you can replace a value and HubSpot applies the change to every row in that column where it appears, which handles a misspelling repeated across hundreds of rows. That works well for one or two bad values. It stops being the quicker route when several columns need work, or when the same file arrives every month.

If the whole import was rejected before it got to the rows, it is almost always one of the file-level problems in the next section. HubSpot checks the shape of the file before it looks at the contents.

Error message lookup

Find the message from your error file below, then go to the section that fixes it. The error names are HubSpot's own, as its Review and troubleshoot record import errors article lists them (updated September 25, 2026). The table covers the errors this page fixes; that article lists every one and says what it means, and this page says how to fix the file.

Error in the error fileWhere it's fixed on this page
Incorrect number of columns, Invalid file type, Invalid sheet count, Invalid spreadsheet, Row data too largeThe file itself was rejected
Property definition not found, Missing required property, Invalid required property, Property validation rule errorYour columns did not match HubSpot
Invalid enumeration option, Ambiguous enumeration option, Could not parse date, Could not parse number, Could not parse row, Failed validation of Email, Could not find owner, Multiple owners foundIndividual values were rejected
Duplicate unique property value, Duplicate record ID, Invalid record ID, Multiple companies with this domainDuplicates and identifiers
Association record not found, Invalid association identifier, Duplicate association ID, Failed to create association, Failed to find record for associations, Association label not found, Association limits exceededImporting companies and contacts together
Create only import, Update only importIt said it worked, but nothing changed
Limit exceeded, GDPR blocklisted emailThe ones you cannot fix in the file

The file itself was rejected

Most of these stop the import before a single row is read; Row data too large skips only the row that is too big. They are the quickest to fix and the most common cause of a file that will simply not upload.

ErrorWhat it meansThe fix
Incorrect number of columnsAt least one column has data in it but no headerGive every column a header, or delete the stray column. A single value pasted into an unlabeled column does this.
Invalid file typeThe file is not a .csv, .xls, or .xlsxSave or convert it. A .numbers, .tsv, or Google Sheets link will be refused.
Invalid sheet countThe workbook has more than one sheetSend one sheet. Export the sheet you want on its own.
Invalid spreadsheetThe file is corrupt or not really a spreadsheetOpen it, save it again as .csv or .xlsx, and retry.
Row data too largeA single cell or row holds more than 1 MBFind the offending cell. It is usually a note or description field with something pasted into it.

A file refused for having far more rows than you can see is carrying rows that only look empty: formatting or a stray value far below your data makes them count. Press Ctrl+End to see where Excel thinks the data ends, delete the rows and columns past your data, then save and check again. A file that really is too big has to go in as several; see how to split a large file for a CRM import.

Your columns did not match HubSpot

These are about the header row and the properties behind it. HubSpot has to turn each of your column names into one of its own properties, and it will tell you when it cannot.

ErrorWhat it meansThe fix
Property definition not foundA column header does not match any HubSpot propertyMap it to an existing property during the import, or create the property first. Renaming the column to the exact property name avoids the question.
Missing required propertyA property HubSpot requires has no value in some rowsFill the gaps, or filter those rows out and handle them separately.
Invalid required propertyA required property has a value HubSpot will not acceptCheck the format that property expects. This is usually email, a date, or a number.
Property validation rule errorA value breaks a validation rule set on the propertyLook at the rule on the property in HubSpot. Someone on your team set it, and the file has to satisfy it.

Individual values were rejected

These are the ones that let most of the import through and quietly drop the rest, which is why an import can look successful and still leave you short.

ErrorWhat it meansThe fix
Invalid enumeration optionA dropdown value does not match any existing optionEither correct the values in the file or add the option in HubSpot. This is the classic one behind a country column with fourteen spellings.
Ambiguous enumeration optionThe value matches more than one option, or uses the label where HubSpot wants the internal valueUse the internal value, not the display label.
Could not parse dateThe date does not match the format you picked during the importHubSpot asks you to choose a date format when you import. Pick the one your file actually uses, or convert the column to match.
Could not parse numberA number property contains something that is not a numberStrip the currency symbols, commas, and any text such as n/a.
Could not parse rowThe row cannot be processed at allUsually a stray delimiter or line break inside a cell. Re-save the file as CSV and check that row.
Failed validation of EmailThe address is not shaped like an emailFix or remove it. Dead addresses import fine, so this is about format, not deliverability.
Could not find ownerThe owner value does not match an active HubSpot userUse the owner's email address rather than their name.
Multiple owners foundThe owner name matches more than one userUse the email address instead.

Duplicates and identifiers

HubSpot matches on a unique identifier, usually email for contacts and domain for companies. Most of these errors mean your file disagrees with itself about which record is which.

ErrorWhat it meansThe fix
Duplicate unique property valueTwo rows carry the same unique identifierDeduplicate the file before importing. HubSpot will not choose between them for you.
Duplicate record IDThe same record ID appears more than onceKeep one row per record, the most recent one.
Invalid record IDA record ID does not exist in HubSpotExport the current records to get real IDs, or match on email instead.
Multiple companies with this domainThe domain matches several company recordsMerge the duplicates in HubSpot first, then re-import.

Email matching is case-insensitive in HubSpot, but a leading or trailing space is not the same address. If updates are landing as new contacts, check for whitespace before you check anything else.

Importing companies and contacts together

You can bring contacts and their companies in with one file or two. In one file, each row holds a contact and its company, with an identifier for each: Email or Record ID for the contact, Company domain name or Record ID for the company. Leave the identifiers out and HubSpot creates duplicate records instead of linking each contact to its company.

A contact who belongs to two companies takes two rows, with the same email and a different company domain in each. With two files, one for contacts and one for companies, both need a column in common that connects the records. If both files carry Record IDs, name the columns apart, for example Record ID - Contacts and Record ID - Companies.

Company domain name keeps only the domain: anything after it, such as /about, is removed on import. When one domain matches several companies already in HubSpot, HubSpot leaves that company unchanged and lists Multiple companies with this domain. Merge or delete the extra companies, or import with Record ID instead.

ErrorWhat it meansThe fix
Association record not foundAn identifier used to link the records is missing, has a line break, or runs past 100 charactersFill in the identifier, or export the existing records and use their Record IDs.
Failed to create associationHubSpot imported the records but could not link them in this formatIn one file, give each object its own identifier column. In two files, pick a column both files share.
Failed to find record for associationsThe same identifier was used for different records of one object in a multi-object importMake each identifier unique. On an update-only import, check the values exist in HubSpot.
Association label not foundA label in your Association label column does not exist in HubSpot, so the records are linked without itCreate the label first, or match the spelling of an existing one. Importing association labels needs a Professional or Enterprise subscription.
Invalid association identifierThe column that links the records is not a unique property, or its values have line breaks or run past 100 charactersLink on Email for contacts, Company domain name for companies, or Record IDs.
Duplicate association IDThe column your two files share has values that are not uniquePick a different shared column, one whose value stands for a single record on the other side, such as the company name for the contacts who work there.
Association limits exceededThe import adds an association past a limit set in your accountRaise the limit if the records should be linked, then import again or link them by hand.

With Association record not found, Invalid association identifier, Failed to create association, Association label not found and Association limits exceeded, the records still import. Only the link or its label is missing, so you can fix the file and import again, or link the records by hand in HubSpot.

It said it worked, but nothing changed

This is not really an error, and it catches people out more than the errors do. HubSpot asks whether the import should create records, update them, or both, and it does exactly what you chose.

Create only import means your file matched existing records and HubSpot left them alone, as instructed. Update only import means the opposite: rows that matched nothing were skipped rather than created. If you meant to do both, choose create and update, and run it again.

The ones you cannot fix in the file

Some errors are about your HubSpot account rather than your spreadsheet, and no amount of cleaning will move them.

Limit exceeded means you have hit your record allowance. GDPR blocklisted email means those contacts cannot be added by import at all, whatever the file says. Those two are HubSpot-side decisions, and the file is not the lever. Association errors are mostly about the file, and they are under Importing companies and contacts together.

The imports that do not fail

Every error above announces itself. The imports that cause real trouble are the ones that succeed. Nothing is rejected, the summary looks healthy, and the damage only surfaces days later when a report is wrong or a rep asks why a contact went cold.

Experienced HubSpot admins consistently name the same handful. An import can overwrite Original Source, which is the field your attribution reporting rests on. It can move Lifecycle Stage, sometimes backwards. It can replace tidy dropdown values with free text typed by whoever built the file. It can break company associations, change record owners and the routing that depends on them, and land values in the wrong property entirely because two columns had similar names. See CRM imports.

The one that surprises people most: an import can trigger workflows. If enrollment criteria match the records you just touched, automation fires on all of them at once, and that can mean live emails going out to a few thousand people who were not expecting them.

The question worth asking before any import is not whether the file is clean. It is: what is this file allowed to change? Everything else follows from the answer.

Importing an Apollo export into HubSpot

An Apollo people export usually imports into HubSpot with few errors. The trouble is in what it brings with it: more than 70 columns, some named so that HubSpot maps them to the wrong property. These are the ones to deal with before you upload.

1

Check for the locked placeholder email

Apollo now asks you to access each email, at a credit apiece, before it exports a contact. Older exports can still carry rows where every unrevealed email is the same placeholder, email_not_unlocked@domain.com. HubSpot imports the first of those rows and rejects the rest with a Duplicate alternate ID error, so only one of those people arrives. Filter them out, or reveal the contacts in Apollo and export again.

HubSpot's Fix import errors panel on the mapping screen: the Email column has 11 errors, Duplicate unique property value, from rows that share email_not_unlocked@domain.com.
On the mapping screen, before the import. After it, the same rows are listed as Duplicate alternate ID.
2

Decide what to do with Email Status

Apollo marks each address, for example Verified or Unverified. HubSpot has no field for it and doesn't suggest one. Import only the Verified rows, or create a custom contact property and map the column to it so you can filter later.

3

Choose which phone goes where

Apollo exports five phone columns: Work Direct, Home, Mobile, Corporate and Other. HubSpot maps Mobile Phone to Mobile Phone Number on its own. Map one work number to Phone Number by hand. Corporate is usually the switchboard, so Work Direct is the better choice when it is there.

4

Keep person and company columns apart

The person's location is in City, State and Country, next to the company's Company Address, Company City, # Employees and Annual Revenue. Map the person columns to the contact. The company columns belong on the Company record, in a separate company import.

5

Check every row HubSpot maps for you

HubSpot fills in the mapping from the column names and can get it wrong: in our test it mapped Company City to Company size. Go down the list before you click Next. To skip a column, choose Don't import column in its Import as dropdown, then check Continue without mapping all columns.

6

Set Lifecycle Stage and Lead Status yourself

The export carries neither. Its Stage column is Apollo's own stage, such as Cold, so don't map it to Lifecycle Stage. New contacts get your account's default lifecycle stage and no Lead Status, so add both columns to the file, for example Lead and New, to land them in the views and workflows that filter on them.

The contact HubSpot made from the first placeholder row, Stefan Lindqvist at email_not_unlocked@domain.com: Lifecycle Stage is Lead, the account's default, and Lead Status is empty.
7

Match Account Owner to HubSpot users

Account Owner holds the Apollo user's email address, and the export's Contact Owner column holds the same one. If that address belongs to a HubSpot user, map Account Owner to HubSpot's Contact owner property. If not, the mapping screen says Could not find owner and lets you pick a HubSpot user for each value. Left as No owner, the contacts import without one.

Fix import errors for Account Owner mapped to Contact owner: 44 errors, Could not find owner, and a list to replace each unmatched user, with Priya Bhatt and Hannah Whitfield set to No owner.

Operelio's Apollo.io to HubSpot template, under Templates for prospecting exports below, makes most of these choices for you: it maps Mobile, the first work number and the person's City, State and Country, leaves out Home Phone and Apollo's Stage, sets Lead and New, and puts Seniority, Departments and Apollo lists into Notes with their labels.

A checklist that prevents most of it

None of this is difficult. It is the difference between an import you can undo and one you cannot.

1

Export a backup of the records you are about to touch

Before anything else. HubSpot's restore tool can roll an import back within 14 days, but only a Super Admin on a paid hub can run it, and property history only tells you what changed one record at a time. An export you already have is worth more than any amount of care afterwards.

2

Run a sample first

Twenty or thirty rows. Import them, then open two or three of those records and read the property history to see exactly which fields the import wrote. This is the step people skip and then wish they had not.

3

Decide what the file is allowed to change

Map only the columns you intend to update. A column that is in the file but should not overwrite anything is safer left unmapped than mapped and hoped about. Treat Original Source, Lifecycle Stage, and owner fields as protected unless changing them is the actual goal.

4

Check what automation will fire

Look at which workflows enroll on the properties you are about to write. If the import should not set anything off, turn those workflows off for the duration, or import into a staging property instead.

5

Put untrusted data in its own field

When a list comes from a conference badge scanner or a bought file, the job title in it is a claim, not a fact. Writing it into a separate imported or submitted field keeps your clean data clean and still gets the new information in.

Fixing it once instead of per error

Most of the list above comes from three things: a header row that does not match, values that do not match a dropdown, and duplicates. HubSpot lets you patch some of these in the import tool one value at a time, which is fine once. It is the wrong shape when the same export arrives every month, because you are redoing the same corrections by hand each time.

Clean Headers standardizes the header row and removes the blank and duplicate names behind Incorrect number of columns and Property definition not found. Find & Replace collapses the spelling variants behind Invalid enumeration option. Deduplicate removes the repeated identifiers behind Duplicate unique property value. Excel to CSV takes one sheet out of a multi-sheet workbook, which is Invalid sheet count. The CRM Formatter maps your columns onto HubSpot's real property names and shows a preview of what will be created and updated before anything is written.

Dates have two fixes and it is worth knowing both. HubSpot asks you to pick a date format during the import, so choosing the one your file already uses often solves it without touching a cell. When the column itself is inconsistent, which is the harder case, Data Health Check flags the mixed formats and its Standardize dates fix converts them to YYYY-MM-DD, reading the column in its own day and month order. A date that could be either, in a column that doesn't settle it, is left as it is for you to check.

Map your columns onto HubSpot's real property names and see what will be created and updated before it writes.

Open CRM Formatter

Frequently asked questions

Why does my import say Incorrect number of columns when the columns look fine?

There is data in a column with no header. It is often a single stray value pasted to the right of your real data, or a formatting mark Excel kept. Delete the empty column entirely rather than clearing the cell, then save again.

Why did HubSpot import the contacts but leave some fields empty?

Those values were rejected individually while the row itself succeeded. It is almost always Invalid enumeration option on a dropdown property, or Could not parse number or date. The error file lists them.

Why is my update creating new contacts instead of updating existing ones?

The unique identifier is not matching. Check that the email column is mapped as the identifier, and check for leading or trailing spaces, which make an otherwise identical address a different one.

Can I import into HubSpot from Excel, or does it have to be CSV?

Both work. HubSpot accepts .csv, .xls, and .xlsx, but the workbook must contain only one sheet. Multi-sheet workbooks are rejected with Invalid sheet count.

What date format does HubSpot want?

There is no single one. You choose the format during the import, and the error appears when the file does not match your choice. If the column is consistent, pick the matching format. If the column has mixed formats, which is the usual cause, Data Health Check flags it and converts the column to YYYY-MM-DD.

Can an import trigger my workflows?

Yes, and this catches people out badly. If a workflow enrolls on a property your import writes, it fires for every record you touched, which can mean live emails to thousands of contacts at once. Check which workflows enroll on the properties you are mapping before you import, and turn them off for the run if they should not fire.

How do I check what an import actually changed?

Open a few of the affected records and read the property history, which shows the previous value and what the import wrote over it. Do this on a small sample import before running the full file. HubSpot's restore tool can roll the import back within 14 days if a Super Admin on a paid hub runs it. Otherwise the only real safety net is the export you took beforehand.

Why did my import create new contacts when the emails already existed?

Usually the unique identifier was not set to email, or the import mode was create-only. Differences in capitalization are also reported as a cause. Lowercasing the column and trimming stray spaces costs nothing and removes the question entirely.

Why does HubSpot reject my email column?

Failed validation of Email means a value is not shaped like an address: no @, a space in the middle, two addresses in one cell, or a period at the end. HubSpot checks the shape, not whether the inbox exists, so a dead address imports without complaint. Check the email column for those four things, and verify the list separately if bounces matter.

What format do phone numbers need to be in?

A plus sign, the country code, then the number, for example +14155550123, with any extension added as ext123. That is the format in HubSpot's import guide. Mixed formats in one column are the usual problem, so convert every row to that format.

How do I fix an import that has already run?

Start with the error file. Fix only the rows that failed and import those on their own, so the rows that worked are not written twice. If the import wrote wrong values, a second import in update mode with the corrected values puts them right, matched on email. To reverse the whole import, use HubSpot's restore tool or your backup, both covered in the checklist above.

Will importing overwrite data already in HubSpot?

It can, depending on the mode you pick and whether the column has a value. If you are pushing from Operelio, the push card shows how many records will be created, updated or not sent, and you can choose to fill only fields that are currently empty.

How do I import Apollo contacts into HubSpot?

Export the people list from Apollo as a CSV, remove any rows with the locked placeholder email, map Mobile Phone and one work phone, check every column HubSpot mapped on its own, add Lifecycle Stage and Lead Status, and import it to Contacts. Company columns such as employee count and revenue go in a separate import to Companies.

Can I import contacts without an email?

Yes, but HubSpot can't tell who they are. Its Deduplicate records article says a row with no Email or other unique identifier is imported as a new contact, so a person already in HubSpot gets a second record, and importing the file twice adds every such row twice. To update an existing contact that has no email, map its Record ID instead. If you have each person's name and company website, the Email Verifier & Finder can look for the address before you import.

Ready to get started?

Upload a file and run your first transformation. Free, no credit card required.