Aglet

Learn from recurring form validation draft loss

Recurring draft loss means validation behavior is not being treated as part of the form contract. Compare episodes and preserve the field shapes and response paths that must remain recoverable after rejection.

Keep the lesson for the next incident

  1. Compare loss boundaries

    Align form, field shape, invalid condition, controller response, render path, nested values, browser recovery, and user consequence. Separate one-off browser history behavior from server-rendered loss.

  2. Define retention expectations

    Document which valid values must survive rejection, which invalid values may be normalized, and how errors identify the correction. Keep sensitive fields represented by safe structure only.

  3. Set a recurrence rule

    Trigger review after changes to parameter filtering, form builders, validation, redirects, nested inputs, or error pages. Name representative drafts that should be replayed before release confidence is stated.

What to carry forward

The lesson should preserve one explicit draft-retention contract and a recurrence rule for form changes. Treat it as provisional until later invalid submissions retain the same meaningful fields through correction and retry. Preserve a draft-retention contract for representative forms and review it after parameter, validation, redirect, nested-input, or error-rendering changes. Include one nested or long-text example because simple scalar fields can conceal the loss boundary.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow