Error converting value to correct data type: Failed to parse date: 1999-01-01T23:01:01+01:00
The short answer: the loader could not turn one of your cells into the type
the field holds. It is nearly always a date in a format Salesforce does not recognize, a number
carrying a currency symbol or a thousands separator, an Excel serial number where a date should
be, or a blank-looking cell that actually contains a space. Reformat the offending column —
dates as yyyy-MM-dd, numbers as bare digits with a period as the decimal point —
and reload. No tool required.
Where the error comes from
The message is thrown before Salesforce looks at your data as a record. No validation rules, no required fields, no triggers. A converter took the string in your cell, tried to make a date, a number, or a boolean out of it, and gave up. In Data Loader's case that converter is its own internal parser, which is stricter about formatting than the API it feeds — which is why a value the REST API would happily accept can still fail here. The fix is always in the file.
The rest of the message names the culprit.
Error converting value to correct data type: Failed to parse date: … is a date
problem; the same error ending in Boolean is a checkbox problem. A number that will not
parse is worth knowing about too, though Data Loader reports it as a separate error —
<field>: invalid number: <value>. It is the same class of problem with the
same class of fix, so both are covered below.
Dates: the format Salesforce actually accepts
The API stores a Date field as yyyy-MM-dd and a Date/Time field as ISO 8601 —
yyyy-MM-ddTHH:mm:ss.SSSZ or yyyy-MM-ddTHH:mm:ss.SSS+/-HH:mm. Time zone
offsets are not supported on plain Date values.
Data Loader is more forgiving, but only along a fixed list: yyyy-MM-dd,
yyyyMMdd, MM/dd/yyyy, yyyy-MM-dd HH:mm:ss,
MM/dd/yyyy HH:mm:ss and yyyy-MM-dd'T'HH:mm:ss.SSS'Z', among others. Outside
that list is a parse failure.
Two traps sit inside this. Data Loader's parser rejects the colon in a time zone offset even though
the SOAP and Bulk APIs accept it: 1999-01-01T23:01:01+01:00 fails, while
1999-01-01T23:01:01+0100 and 1999-01-01T23:01:01GMT+01:00 pass. And
dd/MM/yyyy is only understood when you tick Use European date format
in Data Loader's settings — the option exists to support dd/MM/yyyy and
dd/MM/yyyy HH:mm:ss. With it off, 03/12/2026 is read as March 12th.
The Data Import Wizard differs again: it reads dates in the format of the locale of the user running the import. The same file, imported by a colleague elsewhere, can be read differently.
Date format table
| What your file contains | Why it fails | What to write instead |
|---|---|---|
3 Mar 2026, 03-Mar-26, Mar 3, 2026 |
Not on the accepted format list. Month names are never parsed. | 2026-03-03 |
03/12/2026 meaning 3 December |
Read as 12 March unless European date format is on. No error — a wrong date. | 2026-12-03 |
46084 |
An Excel date serial number — this one is 3 March 2026. It is a number, not a date. | Format the cell as a date in Excel, then export as yyyy-MM-dd |
2026-03-03T09:00:00+01:00 |
Data Loader cannot parse the colon in the offset. | 2026-03-03T09:00:00+0100 or 2026-03-03T09:00:00GMT+01:00 |
2026-03-03 09:00 |
Seconds are missing from a supported pattern. | 2026-03-03 09:00:00 |
09:00 or 9:00 AM in a Time field |
Data Loader wants milliseconds and the trailing Z. It answers with a
different error: value not of required type. |
09:00:00.000Z |
2026-03-03 in a Date/Time field |
Loads, but at midnight — and then shifts by your time zone. | Supply the time, or read why the date lands a day early. |
A parse failure at least stops the record. The worse outcome is the silent one: an ambiguous
03/12/2026 that loads cleanly on the wrong day. If your dates parsed but look wrong, see
Salesforce import date off by one day.
Numbers: strip everything that is not a digit
A Number, Currency, or Percent field wants a bare number, not a formatted one.
- Currency symbols.
$1200is a string. The field holds the amount; the currency is set by the record's currency code, not by a symbol in the cell. Remove$,£,€and any trailingUSD. - Thousands separators.
1,200,000is rejected — Salesforce's own guidance on theinvalid numbererror is to remove the commas and untick Use 1000 Separator in Excel's Format Cells dialog. Write1200000. - Percent signs and accounting notation. A Percent field takes
15, not15%.(500)is not a negative number;-500is. - Text in a number column.
N/A,TBD,-andunknownall fail. Leave the cell genuinely empty instead.
The decimal comma, which is worse than it looks
In much of Europe 1,5 means one and a half. Salesforce expects a period:
1.5. This mismatch has two failure modes, and the loud one is the lucky one. If the comma
reaches the API, the value is rejected as an invalid number. But in a comma-delimited CSV, an unquoted
1,5 is not one field — it is two. Every column to its right shifts by one, which is how
you get Row is larger than header, or an amount sitting quietly in the wrong field. Fix
the decimal separator at the source, or keep the file as .xlsx and use a tool that reads
the workbook directly instead of a re-delimited CSV.
Checkboxes and booleans
Data Loader accepts a generous set of boolean values, case-insensitively:
yes, y, true, on, 1 for true, and
no, n, false, off, 0 for false.
It accepts nothing else — Yes please fails, and a checkbox column holding
Active or Closed is not a checkbox column at all.
The nastiest version: a cell containing a single space. It looks empty, an empty cell loads fine, and a space throws the conversion error. If a boolean column fails on rows that look blank, trim the column before you do anything else.
Excel, quietly rewriting your file
Many of these errors are made by the spreadsheet, not the source system. Excel infers a type from what a cell looks like, then re-renders it on save:
- A date in a General cell is a serial number underneath, and a CSV export can emit
45718instead of the date you saw. - An ID or postcode with leading zeros loses them.
- A long number is exported in scientific notation as
1.2E+15. - A minus sign that arrived by copy-paste from Word, a PDF, or a web page can be an en dash
(
–500) rather than a hyphen, and stops being a number.
Set each column's format explicitly — Text for IDs, a custom yyyy-mm-dd for
dates — before saving, then reopen the exported CSV in a plain text editor. What Excel displays is not
what Excel saves.
A repeatable fix, per column
- Read the failing value in the results file, not just the message.
- Check the target field's type in Setup, Object Manager, Fields and Relationships. A Currency field and a Text field take completely different input.
- Normalize the whole column in one pass. Do not fix only the rows in the error log — a second bad format is usually sitting behind the first.
- Trim every column. Whitespace is the most common invisible cause.
- Reload, and expect a new class of error to surface. Type errors mask missing required fields and restricted picklist rejections behind them.
Catching conversion errors before the load
Every fix above works with Excel and a text editor. The cost is the loop: load, read the failures, fix, reload, discover the next format the file got wrong. The way out is to type-check the file against the target fields before writing anything.
That is what INQUA does. It reads
your .xlsx or .csv directly, types every cell against the target field,
and previews per-cell errors — a date it cannot parse or a number it cannot read is flagged in the
row where it lives, before a single record is written. A Parse date (exact format)
transformation converts a known source format such as dd/MM/yyyy into a real date;
Find & replace strips separators; common currency symbols in Number fields are
accepted rather than rejected. A review scan checks every selected row for conversion issues before
writing, and the Salesforce upload is
refused outright while any cell error remains.
Be clear about the limits: type checking is not org simulation. It cannot tell you in advance that a validation rule, a required field, a duplicate rule, or a Flow will reject a row — those live in your org and only fire on write. What it removes is this class of error, where the data never reached the record.
It also works with no Salesforce connection: point it at your own load template and it writes a typed
.xlsx workbook back onto that template. If a CSV round-trip mangled your dates in the
first place, see
importing Excel to Salesforce without CSV —
or the full list of Salesforce import errors when the next
message is a different one.