Rules
FP803 · breaking-interface-change
A change breaks the locked contract: an input became required, an input/secret/output was removed, or a type changed.
| Code | Name | Category | Default severity |
|---|---|---|---|
FP803 | breaking-interface-change | Contracts | 🔴 error |
Why it matters
Callers written against the locked interface will fail (unknown or missing input) or silently read empty outputs. In large pipelines those callers may live in other repositories or rarely-run branches.
How to fix
Update every caller first (flowpact lists the known consumers), then regenerate the contract. If the change is intended, flowpact generate records it and the diff makes the break explicit in review.
Example
# contract: input "channel" optional
on:
workflow_call:
inputs:
channel: { type: string, required: true } # now requiredConfigure
Change the severity (or turn the rule off) in .github/flowpact/flowpact.config.yml, by code or by name:
rules:
FP803: off
# or: breaking-interface-change: errorExplain it in the terminal:
flowpact explain FP803