---
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`

## Request

- Base URL: `https://identity.sandbox.lerian.net`
- URL: `https://identity.sandbox.lerian.net/v1/imports/contexts/{contextId}/jobs/{jobId}/errors`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/lerian/apis/identity-plugin/docs/v1/imports/contexts/:contextId/jobs/:jobId/errors/get.ts> (a function with typed inputs; its response is checked against the schema)

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.dev/lerian/apis/identity-plugin.md) - [All operations](https://skmtc.dev/lerian/apis/identity-plugin/llms.txt) - [OpenAPI document](https://skmtc.dev/lerian/apis/identity-plugin/revisions/25daba385532?raw)
