Bulk reindex DISPATCHER - queue re-processing of every document
One POST queues the full extraction pipeline (fetch → parse →
chunk → embed) on EVERY known document of the knowledge base -
uploaded files, connector/remote docs AND existing web pages
(including auto-discovered ones) - re-processing them with the
current store settings plus each document’s persisted overrides.
Use after a store-level parser or chunking change to roll it out
across the whole KB. No request body: per-document overrides stay
on POST /documents/{document_id}/reindex.
Dispatch-only, by design. The request does only auth, a
count, one atomic lease acquire and one internal batch kick, then
returns 202. All per-document work runs ASYNCHRONOUSLY
afterwards (batches of 100, keyset-paginated by id, chained
through the platform events API so each link restarts at call
depth 0). The response reports what was DISPATCHED, never real
parse/embed completion - status is dispatching (or complete
for an empty KB), and the terminal
storage.kb.reindex.dispatch_completed event likewise reports
counts of what was queued (visited, dispatched,
skipped_missing_file, dispatch_failed). There is intentionally
NO completion or progress tracking; a document that later fails to
parse/embed surfaces through its own status, not here.
Documented characteristics of the dispatch-only design:
- Best-effort live set, not a snapshot. Documents are walked by keyset pagination during the run; rows inserted or deleted mid-run may or may not be visited.
- Burst, not throttled backpressure. Batches are spaced by a small delay only; a large KB enqueues its whole document set into the pipeline over a short window (milder than, and replacing, the legacy synchronous fan-out).
- Concurrency guard is dispatcher-only. An atomic lease prevents two overlapping reindex DISPATCHES; it does NOT guard a reindex overlapping ordinary ingestion, does not interact with the crawl pause state, and does not block on a running crawl.
- No new-page discovery. Existing/known web pages are
re-fetched (depth-0); discovery of NEW pages runs on the crawl
periodicityschedule, not here (there is no manual recrawl - removed 2026-07-20 as it never discovered pages).
Requires editor+.
Authorizations
User session JWT or instance API key (iak_*). Send as Authorization: Bearer <token>.
Path Parameters
Knowledge base id. Legacy physical prefix vs_ (the kb_ rename is deferred).
128^vs_[A-Za-z0-9-]+$Response
Reindex dispatched (or a no-op for an empty KB). status is
dispatching when documents were queued, complete when the
KB has no documents (no lease is taken).