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

# The experiment restarted

> A new experiment appeared and the status went back to initializing: a declaration-class field changed, often because two call sites disagree.

The dashboard shows a new experiment on the element, the previous one concluded with reason `superseded`, and decisions went back to `initializing`. A declaration-class field changed. Changing one of these starts a new experiment on purpose, because the variants were generated against the old value; the question is which one changed, and whether you meant it.

## Which fields restart an experiment

`control` (its content), `rewards`, `format`, `requirements`, `parameters` and `options.holdout`. Nothing else does. See [Declarations](https://docs.trycurious.ai/concepts/declarations.md).

## Two call sites disagree

The most common cause. One path sends the declaration with `"window_seconds": 86400` and another with `604800`; one includes a reward the other omits; one call site was updated and the other was not. Each alternation supersedes the experiment again. Staging and production count as two call sites: a test key and a live key configure the same experiment. Put the declaration in one place: a shared constant sent by every `decide`, or a [`declare`](https://docs.trycurious.ai/guides/declare) step with serving code that sends only `element` and `user_id`.

## The control was edited

The control's content is identity: changing the copy of your current version, even a typo, is a new control and a new experiment. If the old copy must change, accept the restart; if you only wanted to guide future variants, that is `instructions`, which updates in place.

## The format was inferred, then declared

On a first call without `format`, Curious infers one from the control. A later call that declares a `format` that differs from the inferred one (a `max_characters`, a different field type) supersedes the experiment. Declare the format from the first call when you have one in mind.

## The holdout changed

`options.holdout` is fixed for an experiment's life; a different value supersedes it. The other options (`assignment`, `approval`, `minimum_effect_size`) update in place.

## Finding the change

The dashboard shows the chain of experiments on the element, each with the declaration it ran under. Compare the two declarations field by field; the differing field is the cause. An identical declaration is always a no-op, so once the call sites agree, the restarts stop.

## When you meant it

A deliberate restart carries the declaration forward, with your changes applied, but not the variants: the successor generates them afresh against the new declaration. Change declaration-class fields in one deliberate step rather than one at a time, so you pay for one restart, not several.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.