> For the complete documentation index, see [llms.txt](https://help.dollarlabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.dollarlabs.io/dollarback-store-credit/troubleshooting-and-faq/bulk-import-failed.md).

# My bulk import failed

{% hint style="info" %}
**Plan:** bulk import is a plan-gated feature.
{% endhint %}

An import job shows failed rows, stopped early, or won't start at all. Start with the job log. It tells you exactly which rows failed and why.

## 1. Read the job log first

**Look at:** **DollarBack admin → Bulk import**, open the job and download its log. Every row gets an entry: customer ID, email, action, amount, currency, status, and a message.

**You'll see:** which rows succeeded and which failed, with a per-row reason. Rows commit individually in small batches, so a job with some failed rows has still applied all its successful rows. Don't re-import the whole file, or successful customers will be credited twice (duplicates are **not** deduped).

**Fix:** build a corrected CSV containing *only* the failed rows, then re-run. The same applies if you stopped a job manually: everything processed before the stop is kept.

## 2. "Customer not found" rows

**Look at:** the failed rows' Email / CustomerId values against your Shopify customers.

**You'll see:** the log message "Customer not found": a typo'd email, a customer that doesn't exist yet, or a CustomerId from a different store. When both Email and CustomerId are present, CustomerId wins, so a wrong ID fails the row even if the email is right. Processing continues past these rows; only they fail.

**Fix:** correct the identifier (or create the customer in Shopify first) and re-run just those rows.

## 3. Malformed amounts or currency

**Look at:** the Amount and Currency columns. Amount and Currency headers are required; amounts must be positive numbers (quoted fields and thousand separators like "8,260.90" are handled).

**You'll see:** rows failing with negative or non-numeric amounts, or a currency code your store doesn't use. Remember: whether the job credits or debits is the job's mode. Amounts stay positive either way, and expiry days apply to credits only.

**Fix:** clean the offending values and re-run the failed rows.

## 4. B2B rows missing CompanyLocationId

**Look at:** whether the job was run in B2B mode, and whether every row has a CompanyLocationId column value.

**You'll see:** B2B-mode rows without a CompanyLocationId fail, because B2B credit attaches to a company location, not an individual buyer.

**Fix:** add the correct CompanyLocationId to each row (find it on the company's location in Shopify admin) and re-run.

## 5. File over 5 MB

**Look at:** the CSV file size.

**You'll see:** the upload rejected past the 5 MB limit.

**Fix:** split the file into parts under 5 MB and import them as separate jobs.

## 6. Development store

**Look at:** your store type.

**You'll see:** bulk import blocked entirely on development stores.

**Fix:** run imports on a live (non-development) store.

## Related articles

* [Bulk import credit (CSV)](/dollarback-store-credit/analytics-data-and-account/bulk-import-credit-csv.md)
* [B2B store credit](/dollarback-store-credit/analytics-data-and-account/b2b-store-credit.md)
* [Migrating from another loyalty app](/dollarback-store-credit/getting-started/migrating-from-another-loyalty-app.md)
* [Credit logs and scheduled rewards](/dollarback-store-credit/analytics-data-and-account/credit-logs-and-scheduled-rewards.md)
