How to fix CSV import errors
Most import failures come down to two things: you picked the wrong importer, or a name in your file does not exist yet.
Requirements
- Roles: Owner or Admin. Managers, Employees, and Viewers cannot import.
First: did you pick the right importer?
Import asks what kind of thing your file contains before you upload it.
| Choose | For |
|---|---|
| Individual Assets | One physical item per row — a laptop, a forklift |
| Asset Stock | A quantity of identical capital units — ten spare laptops |
| Consumables | Supply that gets used up — toner, filters, fasteners |
Your choice decides what gets created. The file cannot decide for you.
No template carries an assetType column any more. If a legacy file still has one, it must agree with the importer you picked — a row saying assetType is one thing while being imported as another is refused, with a message telling you which template it belongs in.
Each importer has its own template with only the columns it accepts. A column that does not belong is reported as an error, not ignored — deliberately, so an old mixed file cannot lose the numbers it carried without telling you.
The errors name the template you should be using:
- "Quantity does not belong in the Individual Assets template — one row is one asset."
- "Asset Stock has no serial number — the units are interchangeable."
- "Asset Stock is held at a location, not by a custodian."
Fix: download the right template and move your data into it.
Tip Importing a mixed spreadsheet? Split it into one file per kind and run the import three times. That is faster than diagnosing why half the rows were refused.
Second: the one that fails every row
"Category not found" on every row means the categories in your file do not exist yet.
Create them at Dashboard → Categories first, then import again. The same applies to locations, departments, custom statuses, and users — all are resolved, not created.
This is deliberate. Silently creating categories from a typo produces an unusable taxonomy within weeks.
File requirements
| Requirement | Specification |
|---|---|
| Format | .csv |
| Maximum size | 1 MB |
| Encoding | UTF-8 |
| Header row | Required |
| Minimum | Header plus at least one data row |
Common errors
"Unauthorized — only OWNER and ADMIN can import assets." Importing needs Owner or Admin. Ask one of them to run it.
"File size exceeds maximum." Split the file. Several imports of a few thousand rows each work fine.
"File must be a CSV."
Export as CSV from your spreadsheet, not as .xlsx.
"CSV file is empty or has no data rows." The file needs a header row plus at least one data row.
"Asset name is required."
A row has a blank name. Usually a trailing empty row — delete it.
"Category is required" / "Category not found." Create the category first. The error suggests the available categories.
"Serial number already exists." Another asset already uses it. Use a different one or leave it blank.
"User with email not found in organization." The email is not a user in your organization. Check the address, or invite them first.
"Location not found." Create the location at Dashboard → Locations first.
"Expected a numeric value." A cost column contains something that is not a number. Remove currency symbols, thousands separators, and stray spaces.
Date errors.
Dates must be YYYY-MM-DD. Spreadsheets reformat these on save — check the file itself, not the spreadsheet view.
The reliable way to import
- Pick the right importer for what you are loading.
- Download that importer's template. It carries the exact column names, and only the columns it accepts.
- Create your categories, locations, and departments first.
- Import five rows as a test. Fix what fails.
- Import the rest once the five work.
Five rows tells you everything five hundred would, and takes a minute to fix.
Troubleshooting
Some rows imported and some didn't. That is normal — valid rows are created and invalid ones reported. Fix the failures and re-import just those.
I re-imported and now have duplicates. Re-importing rows that already succeeded creates them again. Import only the previously failed rows.
My Asset Stock quantity didn't create a movement. It should — the opening quantity is recorded as the item's first ledger transaction. Check the item's stock transaction history.
My custom fields didn't import. They need metadata. columns, and custom fields need Orbit or above. Asset Stock does not support custom fields at all — use Individual Assets or Consumables.
I can't import Document Assets. CSV import does not create them; they require an expiry date and are created in the Documents module.
"Your subscription has expired." An expired subscription blocks creating new records, including imports. Existing data stays readable. Renew at Settings → Billing.
Non-English characters came through wrong. Save the file as UTF-8.
Related articles
Need Help?
If you have questions not covered in this article, our support team is here to help.
Contact Support