---
title: "Retry a failed ingestion job"
method: POST
path: "/v1/knowledge-base/ingestion-jobs/{job_id}/retry"
tags: ["knowledge-base"]
---

# Retry a failed ingestion job

`POST /v1/knowledge-base/ingestion-jobs/{job_id}/retry`

Retry a failed or partially-failed ingestion job.

Every ``/ingest`` submission is a ``bulk`` parent (even single-doc uploads),
so retriability is gated on *status*, not job_type: only failed /
partial_failure jobs are retried — completed jobs (nothing to re-ingest) and
in-flight jobs (queued/processing) are rejected.

* Bulk parents re-dispatch ONLY their failed children; completed docs are
  left untouched (never re-ingested).
* Segmented jobs re-dispatch only the segments that failed.
* Non-segmented (single-pass) jobs reset job + version state and re-dispatch
  ``prepare_document``.

Connector-backed jobs are rejected here — they have their own re-sync path
(see below).

Returns 202 with the job ID; poll ``GET /ingestion-jobs/{job_id}``
for progress.

## Path parameters

- `job_id` string, uuid, required

## Response `202`

Successful Response

- unknown

## Other responses

- `400` — Bad request
- `401` — Authentication required
- `404` — Resource not found
- `422` — Validation Error

---

[API](https://skmtc.net/oneloop-hq/apis/feather-api.md) · [All operations](https://skmtc.net/oneloop-hq/apis/feather-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneloop-hq/feather-api/revisions/9cd7291d4228/schema)
