Skip to content

MV variant bucketing reshuffles when feature state is recreated (v2 versioning) #7913

Description

@gagantrivedi

MV variant bucketing is salted on the feature-state pk: FeatureState.get_multivariate_feature_state_value hashes [self.id, identity_hash_key] (api/features/models.py:771). Any flow that creates a new feature state changes the salt, so every identity re-buckets across variants.

Two triggers:

  1. Enabling versioning
  2. Editing MV weights under v2

Repro: v2 env, MV flag 50/50 → 60/40: some identities that received variant_1 under 50% switch to control, despite variant_1's allocation increasing.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Fields

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions