# Rejected rows

## Rejected rows
Mercura checks every row again while it applies the batch, after the
request validation that answers `400`. A row it rejects is never
counted as applied:
- **Customers:** a rejected row is skipped and the others are applied.
The job ends `COMPLETED` with `error_count > 0`.
- **Articles and suppliers:** the batch is all-or-nothing. One rejected
row rejects the whole batch: the job ends `FAILED`, nothing is
written, and `errors[]` lists the rows to fix.

Each `errors[]` entry carries the row's `row_number` — its 1-based
position in the request's array — an `identifier` when the row has one,
and an `error_message`. `errors[]` holds the first 1,000 rejected rows;
`error_count` counts all of them.

Version: 1.79.2

## Description:

  - `Rejected rows` ()
    Mercura checks every row again while it applies the batch, after the
request validation that answers `400`. A row it rejects is never
counted as applied: - **Customers:** a rejected row is skipped and the others are applied.
The job ends `COMPLETED` with `error_count > 0`.
- **Articles and suppliers:** the batch is all-or-nothing. One rejected
row rejects the whole batch: the job ends `FAILED`, nothing is
written, and `errors[]` lists the rows to fix. Each `errors[]` entry carries the row's `row_number` — its 1-based
position in the request's array — an `identifier` when the row has one,
and an `error_message`. `errors[]` holds the first 1,000 rejected rows;
`error_count` counts all of them.

