If you're only seeing overridden values in the Exposure Stream for your experiment, there could be several reasons for this. Here are some steps you can take to troubleshoot:
1. Check the Initialization Status: Each hook has an isLoading
check, which you can use, or the StatsigProvider
provides the StatsigContext
which has initialization status as a field as well. This can be used to prevent a gate check unless you know the account has already been passed in and reinitialized.
2. Check the Data Flow: Ensure that the id_type
is set correctly and that your ids match the format of ids logged from SDKs. You can check this on the Metrics page of your project.
3. Check the Query History: If your data is still not showing up in the console, check your query history for the user to understand which data is being pulled, and if queries are not executing or are failing.
4. Check the Exposure Counts: If you're seeing lower than expected exposure counts, it could be due to initializing with a StatsigUser
object that does not have the userID
set, and then providing that on a subsequent render. This causes the SDK to refetch values, but logs an exposure for the “empty” userID
first. To prevent this, ensure the userID
is set before initializing the StatsigUser
object.
If you've checked all these and the issue persists, it might be best to reach out for further assistance.In some cases, users may still qualify for the overrides based on the attributes you’re sending on the user object. This may be due to caching, or it may be due to the user qualifying for other segments that control overrides.
For example, if users have "first_utm_campaign": "34-kaiser-db"
being sent on the user object, they would qualify for a segment that’s being used in the overrides.
It's also important to note that overridden users will see the assigned variant but will be excluded from experiment results. We have a way to include users in results for experiments not in layers, but it seems we don’t have that option for experiments in layers.
Lastly, consider why you are using overrides in this scenario instead of a targeting gate. Overrides can be used to test the Test variant in a staging environment before starting the experiment on prod. However, if some of your customers have opted out of being experimented on, a targeting gate might be a more suitable option.