Troubleshooting Imports
When an import does not produce what you expected, this page covers the diagnostic steps and the most common causes.
Where to Look First
The import runs as a batch job. The batch job log captures errors and skipped rows.
- Open Admin → Batch Jobs.
- Find the most recent run of your import transformation.
- Open it and read the log. Skipped rows are usually called out with the row number and reason.
If the batch job completed without errors but the result is wrong, the problem is in the data. Continue with the symptoms below.
Symptoms and Causes
"All rows failed" or "Wrong number of fields"
Cause: File is not tab-separated.
Fix: Re-save as Tab Delimited Text. Open in a text editor first to confirm the columns are tab-separated. (Notepad, VS Code, or any text editor will reveal the actual character.)
"Software Product not found" on some rows
Cause: The SoftwareProduct value on those rows does not match a Product Code in the catalog.
Fix: Either:
- Add the missing catalog entries first (see Preparing the Catalog), then re-import only the failed rows
- Or correct the spellings in the spreadsheet so they match existing Product Codes
Import succeeds but the Licensing Position is unchanged
Cause: You have not recalculated the position after the import.
Fix: Run Licensing → Calculate Licensing Position. The position is not recomputed automatically on import.
Imported licenses show zero seats in the position
Cause: The catalog entry's License Type is not set, so the engine cannot meter consumption.
Fix:
- Open the catalog entry from Licensing → Licensing Position.
- Set the License Type appropriately (see License Metrics).
- Recalculate.
If the License Type was missing on the imported license records (rather than the catalog), set it on each record or re-run the import with the column populated.
Imported licenses appear with wrong location/department
Cause: Lookup auto-creation matched on a string that already existed but in a different hierarchy position.
Fix: Open one of the affected licenses, correct the lookup manually, save. For bulk fix, use a transformation to update the records.
To prevent: ensure your spreadsheet uses the exact location/department/cost-centre names already in xAssets. The auto-create is intentional but it cannot disambiguate between "London" the country and "London" the city if both exist.
Duplicates created on re-import
Cause: The Reference and Description columns differ between the spreadsheet and the existing record, so the import treats them as new.
Fix: Match the spreadsheet's Reference and Description columns to what is already in the database. The import deduplicates on AssetRef + AssetDesc + CategoryID.
If you need to clean up duplicates, see the Manage Duplicates menu category for tools to merge them.
Import created the wrong number of licenses
Cause: Often a Quantity vs Seats confusion.
Quantity= number of license items (e.g., "I bought 5 packs")Seats= total capacity (e.g., "each pack has 10 seats, so Seats = 50")
The engine uses Seats for capacity calculation. If your spreadsheet has only Quantity (number of packs), you need to multiply through to Seats before importing.
Adobe import created licenses but no agreement
Cause: The Adobe import expects certain header rows or metadata in the export. If the format has changed, the agreement creation step may skip.
Fix: Check the batch job log for the Adobe import steps (Import Adobe 040 - Agreements). If that step skipped or errored, the agreement was not created. You can manually create the agreement and assign the licenses to it via the Software License Agreements menu.
MLS import says "Statement already exists"
Cause: The same MLS file has been imported before.
Fix: Either:
- Delete the previous statement first via Delete MLS Statement transform, then re-import
- Or change the statement name in the file to differentiate
When Things Look Right But the Numbers Do Not
If the import is clean but you suspect the licensing position is wrong, the issue is usually outside the import:
- Check the License Dashboard → Licensing Calculation Steps tab for data quality alerts.
- Look at the Licenses missing LicenseType count — if non-zero, those licenses are excluded from the position.
- Look at the Software Products with Consumptions but no Licenses count — products in this list are showing as under-licensed because no licenses have been entered.
- Check whether you are looking at the position for the right calculation period — if you recalculated only November, October's position is unchanged.
Getting Diagnostic Detail Out
If you need to file a support ticket about a failed import, include:
- The batch job log (export from Admin → Batch Jobs)
- A small (10-row) sample of the input file that demonstrates the failure
- The version of xAssets you are running
- A screenshot of the import dialog
The most useful single artefact is the batch job log — it usually contains the actual SQL errors or row-level rejection reasons.