---
title: "Reproduce a failure mode by running it against an agent"
method: POST
path: "/observability/v1/metric-failure-mode-insights/{id}/reproduce/"
tags: ["observability"]
---

# Reproduce a failure mode by running it against an agent

`POST /observability/v1/metric-failure-mode-insights/{id}/reproduce/`

## Request

- Base URL: `https://api.cekura.ai`
- URL: `https://api.cekura.ai/observability/v1/metric-failure-mode-insights/{id}/reproduce/`
- Auth: one of:
  - API key in header `X-CEKURA-API-KEY`
  - HTTP bearer
  - HTTP bearer
  - HTTP bearer

Draft a scenario from one failure mode and run it against the agent on the same channel the cited calls used, retrying until a run reproduces the failure or `max_attempts` is reached. Choose the failure mode with `failure_mode_index` and the target with `agent`. Returns a `reproduction_session_id`; poll the reproduction session for status. ⚠ Executes real evaluator runs against the agent.

## Path parameters

- `id` integer, required

## Request body

- InsightReproductionRequest: Request body for ``POST /metric-failure-mode-insights/<id>/reproduce/``. Kicks off the full reproduction loop for one failure mode: draft a scenario, then run it against the agent — on the same channel the cited call logs used — until a run fails the insight's metric or the attempt budget is spent. Returns a ``reproduction_session_id`` to poll.
  - `failure_mode_index` integer, required: Zero-based index of the failure mode within the insight's failure_modes list.
  - `agent` integer, required: ID of the agent to reproduce the failure against (resolved from the failure mode's example calls on the frontend).
  - `max_attempts` integer: How many times to run the scenario before giving up. The loop stops early as soon as one run reproduces the failure. Defaults to 10.
  - `redact_transcripts` boolean: If true, strip personal identifiers from the example call transcripts before they are used to draft the reproducing scenario. Semantic context is preserved. Defaults to false.

## Response `200`

- InsightReproductionRequest: Request body for ``POST /metric-failure-mode-insights/<id>/reproduce/``. Kicks off the full reproduction loop for one failure mode: draft a scenario, then run it against the agent — on the same channel the cited call logs used — until a run fails the insight's metric or the attempt budget is spent. Returns a ``reproduction_session_id`` to poll.
  - `failure_mode_index` integer, required: Zero-based index of the failure mode within the insight's failure_modes list.
  - `agent` integer, required: ID of the agent to reproduce the failure against (resolved from the failure mode's example calls on the frontend).
  - `max_attempts` integer: How many times to run the scenario before giving up. The loop stops early as soon as one run reproduces the failure. Defaults to 10.
  - `redact_transcripts` boolean: If true, strip personal identifiers from the example call transcripts before they are used to draft the reproducing scenario. Semantic context is preserved. Defaults to false.

## Changes

- **2026-11-03** `a6fb6a739212`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/cekura/apis/cekura-api/changes/observability/v1/metric-failure-mode-insights/:id/reproduce/post.md)

---

[API](https://skmtc.dev/cekura/apis/cekura-api.md) - [All operations](https://skmtc.dev/cekura/apis/cekura-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cekura/apis/cekura-api/revisions/a6fb6a739212?raw)
