A useful reduction preserves the action that causes the failure while removing unrelated work. Smaller is helpful only while the original problem still occurs.

Write the failure before removing code

Name the starting state, exact actions, expected outcome and observed failure. Record the SDK, target and mode. Save a private working copy before reduction; do not edit the only copy of the application that demonstrates the problem.

Replace private services and user data with clearly synthetic fixtures where possible. If a service boundary is essential to the failure, describe that dependency honestly rather than presenting an unrelated offline example as equivalent.

Reduce one boundary at a time

  1. Choose one unrelated screen, dependency or data source to remove.
  2. Repeat the original actions from the same starting state.
  3. If the failure survives, keep that reduction and record it.
  4. If the failure disappears, restore the last working reproduction and inspect the removed boundary.
  5. Stop when another removal changes the behaviour you are reporting.
A worked reduction log — illustrative, not a confirmed Flutter bug
Synthetic reductionObserved outcomeDecision
Remove account screenDialog failure still occursKeep reduction
Replace network response with a fixtureFailure still occursKeep fixture and identify it as synthetic
Remove row deletionFailure disappearsRow deletion is part of the trigger
Remove final unrelated packageFailure still occursKeep reduction and record package list

Package the result for someone else

Give the reader a clean starting state, required inputs and an exact action sequence. Include the command and target needed to run it, the smallest relevant logs, and a statement of what was not reproduced. Confirm that a second local copy can follow the instructions without private files.

A minimal project is evidence for its own behaviour. It does not establish which repository should fix the issue. Compare the reproduction against the intended baseline and candidate, then use the project’s issue template. If a reduction no longer reproduces the original symptom, label it as an investigation aid rather than the reproduction.

Describe the original trigger → Remove one boundary → Repeat the same actions → Share the smallest surviving case
Original explanatory diagram by Flock editorial. It summarises this guide’s procedure.

Describe the original trigger → Remove one boundary → Repeat the same actions → Share the smallest surviving case.

Primary sources

Continue with the next step

Find your next step

Browse the full sitemap