Skip to content

Projection Re-Drive Already In Progress

URI: https://docs.ankatech.co/errors/projection-redrive-in-flight
HTTP Status: 409 Conflict

When you see this

A re-drive of the platform's Redis projections is already running, so this request was not started.

The manual republish endpoint and the automatic recovery share one driver and one in-flight flag by design, so a recovery re-drive and an operator republish never run concurrently. A second request is not queued: the response names the running pass in extensions.passId, so the caller can follow it instead of duplicating the work.

Common Causes

  • A second operator triggered a republish while the first was still running.
  • The endpoint was called again before the previous re-drive completed.
  • The service is still completing its boot-recovery re-drive.
  • The platform detected that Redis lost its data and is republishing every projection on its own.

Response Example

{
  "type": "https://docs.ankatech.co/errors/projection-redrive-in-flight",
  "title": "Conflict",
  "status": 409,
  "detail": "A projection re-drive is already in progress; retry after it completes.",
  "instance": "/api/v3/admin/platform/projections/republish",
  "extensions": {
    "passId": "0b7d3e52-91a4-4f6c-8d2e-5c19a7f3b804",
    "requestId": "e2a64f18-3c7d-4b90-8f15-6d2b9a0c7e43"
  }
}

Content-Type: application/problem+json — the response follows RFC 9457 Problem Details.

The body carries no timestamp. extensions.passId names the re-drive pass that is running; extensions.requestId is the request's correlation id.

How to Resolve

  1. Read the running pass, GET /api/v3/admin/platform/projections/republish-passes/{passId} with the passId from extensions (scope admin.platform.observability.read), until its state is no longer RUNNING. The re-drive is bounded and runs off the request thread.
  2. If the pass ended SUCCEEDED and covered the projection you need, the work is done. Otherwise submit the republish again.
  3. Do not loop on retries — the in-flight re-drive is doing the work this request asked for.

A 404 on the pass read means the replica that answered does not retain that pass (see Projection Re-Drive Pass Not Found); submit the republish again once no pass is running.

For full schema definitions, examples, and interactive testing, see the Developer Hub Reference.