Documentation Index
Fetch the complete documentation index at: https://docs-staging-feat-experiment-center.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
My experiment is not getting traffic
Logs are not displaying theexperiment field, or assignments are not appearing in tenant logs.
Check 1: Is the experiment active?
Fetch the experiment and confirm status: "active":
draft or paused, activate or resume it:
is_valid true?
Even if the experiment was activated before, the is_valid flag can become false if a referenced entity was changed (for example, if you modified the feature flag’s parameters). Check the is_valid field on the experiment response, or run the validate endpoint:
is_valid: false, the errors array lists the specific blockers. Fix each one and try activating again.
Check 3: Is there already an active experiment on this tenant?
Only one experiment can be active per tenant at a time. If another experiment is active, the Experiment Center runs that experiment, not yours.
List all active experiments:
- Are you using the right
device_typevalue? Common values:mobile,desktop,tablet - Are
countryandregionpopulated? These are IP-derived. If your test runs on localhost, IP geolocation may not resolve correctly.
A user is always getting the same variation
This is expected behavior. The Experiment Center uses deterministic hashing to assign variations. Given the same subject identifier and experiment ID, the hash always returns the same bucket and therefore the same variation. The subject identifier for pre-authentication flows is a device-level identifier (a cookie or fingerprint set on the device/browser). For post-authentication flows, it isuser_id.
Why this happens:
- The user switches to a different device or browser (new device identifier)
- You create a new experiment (new experiment ID produces a different hash)
- The user clears cookies (for cookie-based device identifiers)
draft.
I don’t see event.experiment in my tenant logs
Check 1: Is the experiment active?
The experiment field is only stamped on auth events when an experiment was active during the transaction. See the steps above to confirm the experiment is active.
Check 2: Is the auth event going through a supported trigger?
At Beta, experiment context is stamped on events from the pre-authentication flow (login and signup). Check the auth event type in your logs. Event types like s (successful login) and ss (successful signup) should be enriched. If you are looking at a different event type, it may not be enriched at Beta.
Check 3: Is your tenant log stream configured correctly?
If you are reading logs via a streaming destination (Datadog, Splunk, S3, etc.), confirm that:
- Log streaming is enabled and the destination is healthy
- You are looking at the correct log stream destination
- You are not filtering out the event type that carries experiment metadata
experiment key.
Check 4: Did the resolution fail silently?
The Experiment Center is designed to fail silently to avoid blocking authentication. If the experiment resolution fails (for example, a database timeout or a malformed segment rule), the auth event is not enriched and the auth flow continues normally. No error appears in the application; you only see a warning in tenant logs.
Search your tenant logs for warnings with these codes:
experiment_circuit_open: the experiment resolution circuit breaker is open; the database may be temporarily unavailableexperiment_not_found: a query parameter references an experiment that does not existexperiment_orphaned_params:variation_idorsegment_idwas passed withoutexperiment_id
experiment_circuit_open, wait a few minutes and try again. The circuit breaker opens temporarily after repeated failures and closes automatically once the database recovers.
The validate endpoint returned errors
POST /api/v2/experimentation/experiments/{id}/validate returned is_valid: false with an errors array.
Here are the common error codes and what to do:
| Error code | Meaning | Fix |
|---|---|---|
feature_flag_not_active | The feature flag referenced by this experiment is in draft or archived status | Activate the feature flag: POST /feature-flags/{id}/status with { "status": "active" } |
experiment_missing_control | No allocation has is_control: true, or more than one does | Update your allocations so exactly one has is_control: true |
experiment_invalid_allocation_weights | Allocation weights do not sum to 100 (percentage strategy) | Adjust your allocation weights so they total exactly 100 |
experiment_missing_default | No allocation has is_fallback: true (segment strategy) | Add is_fallback: true to the allocation that should receive unmatched requests |
variation_not_from_flag | An allocation references a variation that does not belong to the experiment’s feature flag | Check the variation_id values in your allocations; each must be a variation on the feature flag you specified |
experiment_active_limit_exceeded | Another experiment is already active on this tenant | Pause or complete the other experiment first |
400 with a composed message, call the validate endpoint separately to get the structured errors array:
errors array. The status transition endpoint returns only a single composed message; for the structured error list, always call validate.
My experiment will not activate
POST /api/v2/experimentation/experiments/{id}/status with { "status": "active" } returned a 400.
Troubleshoot in this order:
1. Run the validate endpoint first.
The status transition endpoint returns a composed message string on failure. The validate endpoint returns the full structured errors array:
active status:
status is draft, activate the flag first. If status is archived, you need to create a new flag.
3. Check that you have at least two variations.
A feature flag must have at least two variations before it can be activated. Check the variation count:
- Weights do not sum to 100 (percentage strategy)
- No allocation has
is_control: true - A
variation_idin an allocation does not belong to the referenced feature flag
I get a 403 with errorCode feature_not_entitled
Your tenant does not have the experiment_center_beta feature flag enabled. Contact Auth0 Support to confirm your tenant is enrolled in Beta and the feature flag is on.
I modified an active experiment’s allocations and got a 400
You cannot modify allocations on an experiment while it isactive. Doing so returns:
- Pause the experiment:
POST /experiments/{id}/statuswith{ "status": "paused" } - Update the allocations via
PATCH /experiments/{id} - Reactivate:
POST /experiments/{id}/statuswith{ "status": "active" }