---
title: "List per-row import errors for a job"
method: GET
path: "/v1/imports/contexts/{contextId}/jobs/{jobId}/errors"
tags: ["Ingestion"]
---

# List per-row import errors for a job

`GET /v1/imports/contexts/{contextId}/jobs/{jobId}/errors`

Returns the stored per-row parse/normalization errors for an ingestion job (capped at 100 per job), with the uncapped failure total and truncation accounting. Lets clients explain failed or partially-failed imports.

## Path parameters

- `contextId` string, uuid, required — Context ID
- `jobId` string, uuid, required — Job ID

## Response `200`

OK

- ListJobErrorsResponse
  - `errorCap` integer, required — Maximum number of row errors stored per job
  - `items` JobRowErrorResponse[], nullable, required — Stored row errors ordered by row number (capped at errorCap per job)
    - `field` string — Source field the error relates to; empty when the whole row failed
    - `message` string, required — Human-readable error reason
    - `row` integer, required — 1-based row number in the uploaded file
  - `storedErrors` integer, required — Number of row errors actually stored for this job
  - `totalErrors` integer, required — Total number of failed rows for the job (may exceed storedErrors)
  - `truncated` boolean, required — True when more rows failed than were stored

## Other responses

- `default` — Error

---

[API](https://skmtc.net/lerian/apis/identity-plugin.md) · [All operations](https://skmtc.net/lerian/apis/identity-plugin/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lerian/identity-plugin/versions/25daba385532/schema)
