Data Import & Migration

Troubleshooting

What each import error means and how to fix it — upload failures, unmapped columns, validation errors on individual rows, and imports that finish with the wrong result.

Import Troubleshooting

Import problems fall into three groups: the file won't upload, the columns won't map, or individual rows won't validate. This page covers all three, plus what to do when an import finishes but the result isn't what you expected.

The file won't upload

MessageCauseFix
Invalid file type. Allowed: .csv, .xlsx, .xlsThe file isn't a spreadsheet — often a .numbers, .ods, .pdf, or .txtOpen it in your spreadsheet app and re-save as CSV
File too large … Maximum is 25MBOver the size limitSplit it, or export fewer columns
File is empty or too small to parseA zero-byte or truncated downloadRe-export from the source system
The file has no data rowsOnly a header row, or every row is blankCheck you exported the data, not just the layout
The spreadsheet is emptyThe first sheet of the workbook has no rowsMove your data to the first sheet
Too many imports. Please wait before starting another.More than 5 imports started in an hourWait, then continue
Maximum 5 active imports at a timeFive imports are sitting unfinishedOpen them from the history and finish or cancel them
Only administrators and executives can import dataYour role can't run importsAsk an administrator to run it
Excel workbooks: only the first sheet is read. If your export has a cover sheet, a summary tab, or several tabs of data, move the sheet you want to first position — or save that sheet alone as CSV. When a workbook has more than one sheet you'll get a warning naming the sheet that was used.

Only some columns were mapped

The mapping screen tells you how many of your columns were matched. Anything unmapped is left for you to set by hand from the dropdown — an unmapped column is not an error, it just won't be imported unless you assign it.

SymptomCauseFix
A column shows Skipped (sensitive) and has no dropdownThe header looks like salary, bank, or government-ID dataExpected. These are never imported — add them to the employee's HR record afterwards
A field is greyed out in the dropdownIt's already taken by another columnSet the other column to — Skip this column — first
Preview Import stays disabledA required field isn't mappedMap every field marked with an asterisk
Barely anything auto-mappedUnusual headers, or the header row isn't row 1Delete any title rows above the headers and re-upload
The wrong platform was detectedTwo platforms have similar layoutsIgnore the badge and correct the mappings by hand; the badge is only a suggestion

Rows failed validation

These appear in the preview, and in the error log on the import's detail page, with the row number from your file.

ErrorCauseFix
firstName is required / lastName is required / email is requiredThe cell is empty, or the column is mapped to the wrong fieldFill the cell, or fix the mapping
Invalid email formatNot a valid address — often a stray space, or a placeholder like n/aCorrect the address; every employee needs a real, unique one
Invalid date formatThe date couldn't be readReformat the column as YYYY-MM-DD
Invalid numberText in a numeric column, such as N/A in a leave balanceClear the cell or enter a number
Employee "…" not found in this organizationA Leave History row references someone who hasn't been importedImport employees first, then the leave history
Start and end dates are requiredA leave row is missing one of its datesSupply both
Name is requiredA full-name column was blank when it was split into first and lastFill in the name
A failed row never blocks the rest of the file. Bad rows are recorded and skipped; everything valid still imports. Fix the failures in a copy of the file and import just those rows — the ones that already succeeded would be skipped as duplicates anyway.

Rows were skipped

Skipped means the record was already there.

Skip reasonWhat happened
User with email … already existsSomeone in your organization already has that address. The existing person is left exactly as they were
Department "…" already existsMatched an existing department by name, ignoring case

If you were expecting an import to update existing people, it won't — import creates records, it never overwrites them. Edit those people directly from Managing Users.

The import finished but the data looks wrong

SymptomCauseFix
Dates are a day or a month outA day-first file (01/02/2024) read as month-firstRoll the import back, reformat the date column as YYYY-MM-DD, re-import
Everyone's employment type is Full timeThe value in your file wasn't recognized, so the default was applied — this raises a warning, not an errorCheck the warnings; re-import with values like Full-Time, Part-Time, Contract, Intern, Casual
Managers aren't setThe manager column wasn't mapped, or the manager isn't in the file and wasn't already in the organizationManagers can be an email or a First Last name — make sure the manager exists
Departments you didn't create appearedAny department named in an employee file is auto-createdExpected. Rename or deactivate them in Departments
A value is cut shortIt exceeded the field's maximum length and was truncated — this raises a warningShorten it in the source file and re-import, or edit the record
Leave requests are duplicatedThe same Leave History file was imported twiceRoll the second import back
Only 10,000 rows importedThe per-file row limitSplit the file and run several imports

Direct connections

Connection-specific errors are covered on Direct Connections.

Undoing an import

Any completed import can be undone for 72 hours — see Rollback & Import History. If the window has closed, remove the records individually from Managing Users.

Still stuck

Take note of the import's date, file name, and the row numbers that failed, then contact support from Settings → Support. Every import is audit-logged, so those details are enough to trace exactly what happened.