arm_type: "control" every time. One of these is the cause; check them in order.
The experiment is still initializing
experiment_status is initializing. Curious is generating the first variants and building the model, and serves the control meanwhile. This takes minutes, not seconds, after the first declaration. Nothing to do; the status moves to exploring when variants are live. See The experiment lifecycle.
Variants are waiting for approval
experiment_status is still initializing long after the declaration, and the dashboard shows variants marked pending. options.approval defaults to manual, so generated variants wait for a person. Approve them in the dashboard, or declare "options": { "approval": "auto" }. See Approval.
Every variant was concluded
The response carries a warning:This user is in the holdout
Some users always see the control by design: the share isoptions.holdout, five percent by default, chosen deterministically per user and element. Try a different user_id. See Assignment and stickiness.
This user is sticky to the control
Underoptions.assignment: "static", a user who was first served the control keeps it while the control is live, which is always. Try a different user_id, or compare across many users rather than one.
The experiment just restarted
A declaration-class field changed, the experiment was superseded, and the successor isinitializing with only the control. See The experiment restarted.
Still the control?
Look at the element in the dashboard: its status, its arms and their states. Quote theX-Request-Id of a decision to support.