docs: document enrollmentsMap 12-month retention limit#820
Merged
jaredlockhart merged 7 commits intomainfrom Apr 9, 2026
Merged
docs: document enrollmentsMap 12-month retention limit#820jaredlockhart merged 7 commits intomainfrom
jaredlockhart merged 7 commits intomainfrom
Conversation
Because * The enrollmentsMap targeting attribute includes both active and inactive enrollment records, but inactive records are permanently deleted after 12 months (365.25 days) from the original enrollment date * This caused a production issue where a rollout depending on a holdback via enrollmentsMap started losing clients when the holdback's enrollment records aged out of the store * The existing documentation did not mention the retention behavior or the difference between enrollmentsMap and activeExperiments/activeRollouts This commit * Expands the enrollmentsMap entry in the targeting attributes table * Adds a detailed subsection explaining enrollmentsMap behavior, the 12-month retention limit, and how to handle holdback transitions * Adds a comparison table showing the differences between the three enrollment-related targeting attributes
Because * Targeting cannot be modified on already-launched experiments/rollouts This commit * Replaces "update dependent targeting expressions" with the correct workflow: clone the dependent experiment with updated targeting, launch the clone, then end the original
Because * Active enrollments are never cleaned up regardless of age * The previous wording could be misread as a hard 12-month cap on all enrollment records This commit * Clarifies that enrollmentsMap entries persist indefinitely while the experiment is live * Specifies the 12-month cleanup only starts after the experiment ends * Notes that clients who enrolled earlier are affected first * Updates the retention column in the comparison table
Because * The docs should describe behavior, not recommend specific workflows This commit * Removes the holdback transition example and clone-and-replace guidance
freshstrangemusic
approved these changes
Apr 9, 2026
| ``` | ||
|
|
||
| :::warning 12-Month Retention After Ending | ||
| Enrollment records stay in `enrollmentsMap` **indefinitely while the experiment/rollout is live** — there is no time limit for active enrollments. The retention limit only applies after an experiment **ends**: once an enrollment becomes inactive, its record is permanently deleted from the client's store **12 months (365.25 days) after the original enrollment date**. Once deleted, the key is removed from `enrollmentsMap` and any targeting expression that references it will no longer match. |
Member
There was a problem hiding this comment.
Let's link to the actual code where this is defined
Because * Review feedback from Beth to link to the actual code This commit * Adds a Searchfox link to _cleanupOldRecipes() in ExperimentStore.sys.mjs
Because * The webpack entry in yarn.lock was missing its resolved URL and integrity hash, causing yarn to install 5.106.0 instead of the pinned 5.89.0 * webpack 5.106.0 has a breaking change in ProgressPlugin that is incompatible with webpackbar 5.0.2, failing the build This commit * Adds the resolved URL and integrity hash for webpack 5.89.0
Because * The mozilla-central source link could shift as lines are added/removed This commit * Uses a specific revision hash in the Searchfox link so it stays stable
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Because
enrollmentsMaptargeting attribute includes both active and inactiveenrollment records, but inactive records are permanently deleted after
12 months (365.25 days) from the original enrollment date
via
enrollmentsMapstarted losing clients when the holdback's enrollmentrecords aged out of the store
difference between
enrollmentsMapandactiveExperiments/activeRolloutsThis commit
enrollmentsMapentry in the targeting attributes tableenrollmentsMapbehavior, the12-month retention limit, and how to handle holdback transitions
enrollment-related targeting attributes