Skip to main content

Flag Health

The Flag Health page helps you identify flags that may need attention — stale flags, expired flags, or flags that have been fully rolled out and can be removed from code.

Accessing Flag Health​

Navigate to Flag Health in the sidebar.

Health Indicators​

Stale Flags​

Flags that haven't been evaluated recently may be:

  • No longer referenced in code
  • Deployed to environments where they aren't needed
  • Candidates for cleanup

Staleness thresholds are category-aware — each toggle category has a different threshold:

CategoryStale After
Release14 days
Experiment30 days
Ops90 days
Permission90 days

This prevents false positives on long-lived ops and permission toggles while keeping transient release toggles tightly managed.

Expired Flags​

Flags past their expires_at date are automatically treated as disabled. They should be reviewed and potentially deleted.

Fully Rolled Out​

Flags that have been at 100% rollout for an extended period can likely be:

  • Removed from FeatureSignals (flag value hardcoded in code)
  • Promoted to a permanent configuration setting
  • Usage Insights — See flag value distributions to identify flags that always return the same value
  • Target Inspector — Debug flag evaluation for specific users
  • Env Comparison — Detect configuration drift between environments

Best Practices​

  1. Regular reviews — Schedule monthly flag health reviews
  2. Set expiration dates — Use expires_at on temporary flags
  3. Assign categories — Use toggle categories instead of generic tags for lifecycle management
  4. Track status — Move flags through active → rolled_out → deprecated → archived
  5. Delete after rollout — Remove the flag from FeatureSignals after removing SDK references from code
  6. Use the stale flag scanner — Integrate featuresignals scan --ci into your CI pipeline to catch stale flags automatically