# Track every half finished LaunchDarkly rollout in one board

> Open one board each morning to see every flag stuck partway through a rollout, how long it has sat there, and ramp or roll back with one click.

- Workflow type: app
- Services: LaunchDarkly, Sentry, Linear, Slack
- Categories: Engineering, Product
- Published: 2026-08-31

## What it does

- Shows every flag that is switched on but not fully rolled out, with the environments side by side so staging drift is obvious.
- Sorts by how many days each flag has sat at its current percentage, so forgotten rollouts float to the top.
- Lets you ramp to the next stage, hold, or switch a flag off from the card, with a one line reason posted to your release channel.
- Adds a Check rollout health button that compares error volume before and after the last ramp and writes a ramp, hold or roll back recommendation onto the card.

## What you'll need

- A LaunchDarkly account, with permission to change flags if you want the ramp and switch off buttons to work.
- A Sentry account, used by the rollout health check to compare error volume around a ramp.
- A Slack workspace and the channel your team uses for release announcements.
- A Linear account, only if you want linked tickets shown on the cards.

## Prompt

I want a rollout control room that I open every morning as the release manager, so I can see every LaunchDarkly feature flag that is currently stuck partway through a rollout. Build it as an app with one main board. Nothing runs on a schedule and nothing changes a flag on its own, because a person decides every ramp.

The board lists one card per flag that is on but not fully rolled out, meaning the flag is enabled in at least one environment and its targeting still serves a percentage rollout rather than a single variation to everybody. Pull these with List feature flags, requesting per environment configuration so each record carries the rollout percentage and the variations for every environment.

Each card shows whether the flag is actually being evaluated, using List feature flag statuses, so I can tell a live 25 percent rollout apart from one that no traffic is hitting. The card also shows who last touched the flag and how many days it has sat at its current percentage. Work that out from List audit log entries by finding the most recent entry that changed the rollout percentage for that flag and measuring from that entry's date to now.

Show every environment side by side on the card, one column per environment with its own on and off state, rollout percentage and variation split. Staging drifting away from production should be obvious at a glance without opening anything.

When a Linear ticket id sits in the flag description or in one of its tags, pull that ticket through Get Issue and show its current state and assignee on the card, so I can see whether the work behind the rollout is even still open.

From a card I can ramp to the next stage, hold, or turn the flag off. Treat the ramp stages as 1, 5, 10, 25, 50, 75 and 100 percent, and let me confirm or edit the target percentage before anything submits. Ramp and turn off both write back with Update feature flag using a semantic patch against the environment I picked. Hold does not touch LaunchDarkly at all, it records a deliberate pause so the card reads as intentional rather than forgotten.

Every one of those three actions requires me to type a one line reason before it will submit. Once the change lands, post the flag, the environment, what changed and my reason to the release channel with Slack Send a Message, so the team gets a running record of who decided what.

Add a Check rollout health button on each card that runs a background agent against that one flag. The agent takes the timestamp of the last ramp from the audit history, then pulls Sentry List Organization Issues and Retrieve Event Counts for a Project for the window since that ramp, and compares error volume in the window after the ramp against an equally long window before it. It also scans recent audit entries for the same flag for competing changes, meaning other people moving the same flag inside the same window. It finishes by writing a ramp, hold or roll back recommendation back onto the card, along with its evidence: the before and after error numbers, the issues that grew most, and any competing changes it found. The recommendation is advice only and never changes the flag.

Sort the board by days stuck at the current percentage, longest first, so a forgotten 25 percent rollout from three weeks ago floats to the top. Never auto ramp anything and never run the health agent on a schedule. A person presses the button.

LaunchDarkly API notes for whoever builds this. The token goes in the Authorization header raw with no Bearer prefix. Send LD-API-Version: 20240415 on every request. Address everything by key rather than id, so projectKey, environmentKey and featureFlagKey. Semantic patch needs Content-Type: application/json; domain-model=launchdarkly.semanticpatch with a body shaped like {"environmentKey":"production","instructions":[{"kind":"turnFlagOff"}]}. Take the API host from the region field on the credential, since commercial, EU and federal accounts each answer on their own host. Responses are HAL style with an items array plus a _links.next href for pagination. The audit log is the awkward one: it pages backwards, caps at 20 items per page, and you fetch older pages by setting before to the date of the oldest entry you received, in epoch milliseconds.

One framing note. This app is the proactive daily surface for rollouts already in flight, and it complements the existing reactive workflow that fires on a Sentry alert to find which flag caused a spike. The difference is that here I choose the flag and the window and press the button myself, rather than chasing an alert after something has broken.

## How to customize

- Change the ramp stages, for example 1, 5, 10, 25, 50 and 100 percent, to match how your team rolls out.
- Pick which environments appear on each card and which one the buttons act on.
- Choose the release channel that receives the reason messages, or point it at a private channel while you try the board out.

## FAQ

### Will this ramp my flags automatically?

No. Nothing moves on its own. The board only shows you what is mid flight, and every change happens because a person pressed a button and typed a reason first.

### What counts as a stuck rollout?

Any flag that is switched on but still serving a percentage of your users rather than everyone. The board then ranks those flags by how many days they have sat at that same percentage, so the ones nobody has touched in weeks appear first.

### Do I need Sentry to use this?

Only for the Check rollout health button. Without Sentry you still get the board, the side by side environment comparison, the linked tickets and the ramp, hold and switch off buttons.

### How is this different from an alert that tells me a flag caused an error spike?

That kind of alert is reactive and arrives after something has already broken. This is the board you open every morning to catch half finished rollouts before they turn into an incident, and the health check runs when you ask for it, on the rollout window you choose.

### Does the whole team see the same board?

Yes. It reflects your LaunchDarkly project, so everyone sees the same flags and the same current state. Because each action posts its reason to your release channel, there is also a running record of who decided what and why.

Use this prompt in General Input: https://www.generalinput.com/prompts/track-every-half-finished-launchdarkly-rollout-in-one-board