> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ctrlrun.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# DuplicateEffect

> This logical effect already happened, or is happening now (SPEC-v0.1 §5.4).

`ctrlrun.DuplicateEffect` — class, defined at `src/ctrlrun/errors.py:126`

```python theme={null}
class DuplicateEffect(CTRLRunError)
    def __init__(message: str | None, state: str, effect_key: str | None)
```

This logical effect already happened, or is happening now (SPEC-v0.1 §5.4).

`state` is `committed` — the effect is done — or `in_progress`, meaning another attempt
holds a live reservation on the key. Neither permits a second execution.

## Next

* [Python API index](/reference/api/index).
* [Get started](/get-started/quickstart) · [Why](/why).


## Related topics

- [Errors](/reference/errors.md)
- [Three ways in](/get-started/three-ways-in.md)
- [OpenAI Agents SDK tool approval](/cookbook/openai-agents-tool-approval.md)
- [Use the OpenAI Agents SDK adapter](/guides/openai-agents-adapter.md)
- [Use the LangGraph adapter](/guides/langgraph-adapter.md)
