Validation & Preflight
Check your work before publishing with Preflight Validation — what is checked, how errors and warnings are presented, auto-fixes, and how to resolve issues.
Before a work goes live, Preflight Validation checks it for problems — missing translations, broken navigation, oversized files, accessibility gaps. Errors block publishing; warnings and info items are advisory.
You reach it in two ways:
- The Preflight button in the editor header (it shows a badge with the current issue count).
- Validation in the Backstage sidebar, which opens the full Preflight Validation page.
Publishing runs the same checks: the publish wizard's first step is Preflight.
Running a validation
Click Run Validation. When it finishes you get a summary:
- A verdict card — Ready to Publish (green) or Cannot Publish (red) with the total issue count. If you've run validation before, a diff shows how many issues are new and how many were resolved since the last run.
- Counts per severity: Errors, Warnings, Info.
| Severity | Meaning |
|---|---|
| Error | Must be fixed — blocks publishing |
| Warning | Should be fixed — quality or accessibility concern |
| Info | Nice to have — suggestions |
What is checked
Issues are grouped into nine categories:
| Category | Typical checks |
|---|---|
| Accessibility | Image layers without alt text, audio without captions |
| Content | Empty panels (no layers or content) |
| Localization | Strings missing translations for supported locales |
| Flow | Reserved for further flow checks; panels unreachable from the chapter's entry point in the graph are reported under Logic as UNREACHABLE_PANELS |
| Logic | Panel variants without a condition, duplicate variant ids, conditions reading unknown variables, empty or unknown overrides (VARIANT_* codes) |
| Performance | Oversized assets that will slow readers down |
| Audio | Speech bubbles without voice audio |
| Integrity | Broken references (edges or layers pointing at missing panels/assets), pages still listing deleted panels, canvas placements for missing panels |
| Metadata | Missing work title, description, or cover |
An issue whose category the preflight does not know is listed under an extra Other group, so the list always matches the counts in the summary. Other appears (also in the Category filter) only while it has issues; its re-run button re-runs the full validation.
Working through issues
Issues are listed grouped by category. Each row shows a severity badge, the human-readable message, and the issue code (e.g. MISSING_ALT_TEXT). Click a row to open the details:
- Path — where in the work the problem sits (with a copy button), plus panel/bubble IDs and locale where relevant.
- Suggestion — the recommended fix.
- Used in — for asset issues (missing alt text, oversized asset), one link per chapter/page/panel that displays the asset; each opens that panel in the editor. Assets not placed on any panel say so — manage those in the editor's Assets tab.
- Open in editor — jumps straight to the offending panel so you can fix it.
- Learn more — opens the matching section of the Validation Code Reference, which documents every issue code with its severity and recommended fix.
To narrow a long list use the Search box (message, code, or path), the Category dropdown, and the Errors / Warnings / Info severity toggles. Frequently used filter combinations can be saved as presets (Save current as preset) and re-applied with one click.
Each category header also has a re-run button so you can re-check just that category after fixing things.
Auto-fixes
Issues that can be fixed automatically show a Fix button:
| Code | What Fix does |
|---|---|
BROKEN_LINK | Removes the graph edge that points at a missing panel |
EMPTY_PANEL | Deletes the empty panel (and its canvas placement) |
DANGLING_PAGE_REF | Removes deleted panels from that page's reading order and layout |
OVERSIZED_ASSET (images) | Optimize — see below |
You can also:
- Tick multiple fixable issues (or select a whole category) and click Apply fixes to selected.
- Undo the most recent applied fixes — removed content is restored from a snapshot taken just before the fix, so undoing a page clean-up puts back exactly that page.
Optimizing oversized images
Images over the 5 MB publish limit get their own fix: an Optimize button on each oversized-image error, plus Optimize all (n) on the group. Optimizing runs in the background — the CMS re-encodes the image as WebP, stepping down quality (and, if needed, resolution) until it fits the budget — and the issue list polls until the queued jobs finish and the errors clear on their own.
- Your original stays untouched in the library at full quality; the fix adds an
optimizedvariant, and the published work ships that variant instead. - The size check judges the effective shipped size, so an already-optimized image doesn't get flagged again.
- Undo removes the optimized variant and restores the previous state.
Auto-fixes are convenient but not always what you want — a "broken link" fix removes the reference rather than restoring the missing target. Review the suggestion before fixing, and prefer Open in editor when the real fix is authoring work.
Fixing common issues
The Validation Code Reference covers every code individually; the most frequent ones:
| Issue | How to fix |
|---|---|
| Missing alt text | Open in editor, select the layer, add alt text in the A11y inspector tab (or via the asset's Edit Metadata in the Assets library) |
| Missing translations | Open the Localization Workshop, filter by Show Only Missing |
| Unreachable panel | Open the Graph Editor and connect the panel — or delete it if it's leftover |
| Oversized asset | Images: click Optimize on the issue (see above). Audio/video, or when you want manual control: re-export the source smaller and use Replace File in the Assets library |
| Missing title/description/cover | Fill them in under Work Properties → Metadata |
| Empty panel | Add content, or delete the panel in the Tree |
| Page lists panels that no longer exist | Click Fix on the DANGLING_PAGE_REF issue |
Exporting a report
Export JSON and Export CSV download the full issue list — useful for tracking fixes in a spreadsheet or handing a QA report to teammates.