Flag Cleanup Notices: Emails for Flags to Remove
A flag nobody is watching tends to stay in the code for good. Cleanup notices are an email that tells someone when a flag is ready to come out, so they find out without having to go and look. They’re part of Team and every plan above it.
Which plans send them
Section titled “Which plans send them”Team, Pro, Business and Enterprise get the emails. Free doesn’t. The flags a notice would have named are still there to find on Free: the flags list marks each expired or dead one and can filter down to just those, find_stale_flags returns the same set over the MCP server and the Management API, and the flag cleanup Action opens a removal pull request for a dead flag on any plan.
Upgrading from Free won’t land you a backlog email. Anything that was already expired or dead at the last daily check before the upgrade stays quiet, and notices begin with the first flag that qualifies afterwards.
What triggers a notice
Section titled “What triggers a notice”A flag gets a notice when either of these becomes true:
- It has passed its expiry date. Featureflip reports it stale with the reason
PastExpiryas soon as the day ends, and the next notice run picks it up. - It has gone Dead in every environment. Stale flag detection marks an environment Dead after 90 days of one of these: the flag was never evaluated there after being created, it stayed enabled there with no evaluations at all, it served one variation to effectively everyone, or it sat disabled serving its off variation. If even one environment is still in use, there’s no notice. A flag that production depends on isn’t ready to remove just because nobody touches it in development.
A flag that is only Stale for a traffic reason, which takes 30 days, doesn’t get a notice yet. It shows up in the dashboard and in find_stale_flags, and the email waits until the signal has held for the full 90 days. An expiry date is the exception, because a date someone set on purpose is already a clear answer.
Archived flags never get notices.
When notices arrive
Section titled “When notices arrive”Featureflip checks once a day at 14:00 UTC and sends each recipient a single digest for each organization, listing every flag that has newly qualified. The subject reads “Feature flag checkout-redesign is ready to remove” for one flag, or “3 feature flags are ready to remove” for several.
Inside, flags are grouped by project. Each entry links to the flag in the dashboard and says why it’s listed, and in which environments, for example “Expired on 2026-12-01”, “No evaluations recently (Production)” or “Never evaluated since it was created (Development, Staging)”.
You hear about each flag once, rather than every day. It stays quiet while the flag keeps qualifying. If you fix the reason (traffic comes back, say) and later the flag qualifies again, a fresh notice goes out, though never sooner than 30 days after the last one for that flag.
Expiry dates skip that wait. If you push a flag’s expiry date out after its notice and the new date passes too, the next notice run sends a fresh one. A date only passes twice when somebody moves it, so it can’t flicker the way a traffic signal can.
Who receives them
Section titled “Who receives them”Who gets the email depends on the plan and on whether the flag has an owner.
| Flag has an owner | Flag has no owner | |
|---|---|---|
| Pro, Business, Enterprise | The owner | Every Owner and Admin in the organization |
| Team | Every Owner and Admin | Every Owner and Admin |
On Pro and above, a digest can have up to three sections: Flags you own; Flags with no owner, which explains that they’re coming to you as an admin and that assigning an owner routes future notices to that person; and Flags whose owner isn’t getting these notices, for flags whose owner has turned notices off. On Team, every flag is listed under Flags in your organization.
An owner who has left the organization, has been deactivated, or has scheduled their account for deletion can’t receive a notice, so their flags go to the Owners and Admins instead.
Turning notices off
Section titled “Turning notices off”Each person chooses for themselves:
- In the app. Open your profile, find Email Preferences, and switch off Flag cleanup notices. It’s on by default.
- From the email. Every notice ends with Unsubscribe from flag cleanup notices. The link opens a page asking “Stop flag cleanup notices?” and unsubscribes you when you confirm. Mail clients that offer a one-click unsubscribe button use the same link.
Either way, only cleanup notices stop. Account and security emails still arrive, and you can switch the notices back on from Email Preferences at any time.
Opting out only stops the email coming to you. If a flag’s owner turns notices off, that flag goes to the organization’s Owners and Admins instead, as if it had no owner. When an admin opts out, the other Owners and Admins keep getting those flags.
Next steps
Section titled “Next steps”- Flag Owners: name who each notice should go to
- Flag Expiration Dates: set the date that triggers a notice
- Stale Flag Detection: every staleness reason, and how Dead differs from Stale
- Flag Cleanup Action: open the pull request that removes the flag from your code