# Upload errors

> Every upload problem the file checker reports, what causes it, and how to fix it, plus why uploaded data can lack Dimensions.

Each problem below has a code. The [file checker](/data/check-a-file) reports these codes, so if support asks, you can say "the checker says T03". "Auto-fixed" means the checker fixes it in the copy you download; "tick to fix" means it does when you tick **Apply this fix**.

## The file is rejected or never appears

| Code | What you see | Cause | Fix |
|---|---|---|---|
| C09 | Columns can't be mapped | A required column is missing: `text`, `incoming`, `userId`, `sessionId` or `dimensionlabs_timestamp` | Add it. The [converter](/data/convert-a-file) builds them from your own columns. |
| F14 | The file can't be selected | The file is Excel or JSON. Uploads accept CSV, TSV and JSONL. | Drop it into the checker or converter and upload the CSV it gives you. |
| C02 | The upload fails | Some rows have an empty `text` cell. The most common cause of a failed upload. | Remove those rows. Tick to fix. |
| C05 | The upload fails | `incoming` is `TRUE`/`FALSE`, or mixes cases | Lowercase `true` and `false`. Auto-fixed. |
| C06 | The upload fails | `incoming` holds other values, such as `yes`/`no` or `customer`/`agent` | Map them to `true` (customer) and `false`. The converter asks which is which. |
| C08 | The upload fails | A `sessionId` or `conversationId` contains a colon | Replace colons with `-`. Auto-fixed. |
| T00 | The upload fails, or those rows are missing | Some rows have an empty timestamp | Fill them from the source system, or remove the rows. Never fill them with today's date. |
| T02 | The upload fails, or times are wrong | Timestamps are dates or text, such as `1/3/2026 9:12 AM`, instead of Unix milliseconds | Use the [converter](/data/convert-a-file), which turns dates into Unix milliseconds in the time zone you pick. |
| F10 | The file is rejected though it looks fine | Every field is wrapped in quotes, including numbers and empty cells | Re-save with quotes only where needed. Auto-fixed. |
| F06 | Columns can't be mapped | No header row: the first row looks like data | Add a header row with the column names in a text editor, or re-export with headers. |
| F07 | A column can't be mapped | A backslash in a column name | Rename the column. Tick to fix. |
| F09 | Parsing error | Some rows have more or fewer columns than the header, usually from an unescaped quote or comma | Re-export from the source. |
| F01, F02, F03 | Garbled first column, or a parsing error | The file isn't UTF-8, starts with a byte order mark, or contains null bytes | Save as UTF-8 without a BOM. The BOM and null bytes are auto-fixed; tick to save as UTF-8. |
| F04, F05 | Parsing error | Windows (CRLF) or mixed line endings | Save with Unix (LF) line endings. Auto-fixed. |
| T03 | "No messages exist after attempted format conversion", or times off by minutes or hours | Excel saved the timestamps in scientific notation (`1.76242E+12`) | If no digits were lost, tick to fix. If they were, they can't be recovered from the CSV: re-export from the source system, or drop the original `.xlsx` into the checker. |
| F13 | Information only | A very large file | Nothing to do. There is no size limit, and Dimension Labs splits a file for you if it is too large, so there's no need to split it. |

## The upload works, but the data is wrong

| Code | What you see | Cause | Fix |
|---|---|---|---|
| C07 | Some conversations never get Dimensions | `userId` is blank on those rows | Copy the `sessionId` into the blank `userId`s. Auto-fixed. |
| C01 | Fields land in the wrong place | Columns aren't named `text`, `incoming`, `userId`, `sessionId`, `dimensionlabs_timestamp` | Map them during upload, or let the checker rename them. Auto-fixed. |
| T01 | Dates in 1970 | Timestamps in seconds (10 digits) instead of milliseconds (13 digits) | Multiply by 1,000. Auto-fixed. |
| T04 | Dates far in the past or future | Some timestamps fall before 2000 or after 2030, usually from a wrong unit or a broken date in the export | Check those rows against the source system and re-export. |
| T05 | Messages out of order within a conversation | Two messages in one conversation less than a second apart | Space them at least 1,000 ms apart, keeping their order. Tick to fix in the checker; the converter does it for you. |
| C04 | More rows than you sent | Line breaks inside text fields split records | Replace line breaks with spaces. Auto-fixed. |
| C03 | Empty reviews counted as real text | Placeholder text such as `[No review text]` | Drop those rows. Tick to fix. |
| C10 | Ids that don't match anything | Ids stored as decimals, such as `14066912026.0` | Remove the `.0`. Auto-fixed. |
| F08 | A column appears twice | A trailing space in a header (`Data Source ` and `Data Source`) | Trim header names. Auto-fixed. |
| F11 | Ids that don't match anything | Excel turned long ids into scientific notation | If no digits were lost, tick to fix. Otherwise re-export, or use the `.xlsx`. |
| F12 | Odd symbols such as `�` in text | Replacement characters, usually from non-English text that was re-encoded once already | Usually harmless. For clean text, re-export from the source system as UTF-8. |
| B02 | The agent counts business data the wrong way | The file name doesn't say what one row is | Name the file for its grain, such as `orders_by_order_id.csv` or `accounts_by_month.csv`. |
| B03 | Business data dates sort or filter wrongly | A date column mixes formats, such as `2026-01-03` and `1/3/2026`. Dates are stored as text. | Rewrite every date as `YYYY-MM-DD`. Tick to fix. |
| B04 | Yes/no values counted as different values | A yes/no column mixes encodings, such as `Yes`, `yes` and `1`. Everything is stored as text. | Write them as `true` and `false`. Tick to fix. |
| B05 | Saved questions stop working after a re-upload | Business data tables are named after the file; a new file name makes a new table | Keep the file name stable when you replace a file. |
| none | Fewer rows than you sent, no error | Part of the file didn't land | Ask the agent for row counts and date range after every upload, and compare with your file. Contact support if they differ. |

## The data is there but has no Dimensions

These aren't upload errors. The most common causes come first; [Troubleshooting enrichment](/troubleshooting/enrichment) has more.

| What you see | Cause | Fix |
|---|---|---|
| An uploaded file has no Dimensions | A file upload is enriched only by a backfill | Start a [backfill](/dimensions/backfill) from the **Backfill** tab. It typically shows up within the hour, depending on how much data is being enriched. |
| No standard Dimensions on new data | Standard Dimensions run every day only when Dimension Labs has turned on daily enrichment for your workspace | Run a backfill, or ask support@dimensionlabs.io to turn on daily enrichment. |
| The file has no Dimensions at all, ever | It went in under **Structured data**, as business data, which is never enriched | Upload the conversations under **Unstructured data**, then run a backfill. |
| Older data has no Dimensions | The prompt was created after the data arrived | Run a backfill over the older dates. |
| Part of the history has Dimensions, part doesn't | The run was limited to a date range | Run a backfill over the missing dates. |

To check, ask the agent: *"Which prompts have Dimensions for this source, and for which dates?"*

Still stuck? Email **support@dimensionlabs.io** with the checker's report (the **Download report** button), a small `.json` file that lists every issue by code without including your data.
