Pact pending pacts not enabled, new contract breaks provider CI
Pending pacts let a provider verify a brand-new contract without failing its build the first time. With pending disabled, any new consumer expectation the provider has not yet met turns the provider build red, coupling the two pipelines.
What this error means
The provider build starts failing right after a consumer publishes a new interaction, even though the provider code did not change, because the new pact is verified as required.
Verifying a pact between web-consumer and orders-provider
a request for order refunds (NEW)
has a matching body (FAILED)
Note: pending pacts are not enabled; this new pact failed the build.Common causes
enablePending is off in the verifier
Without enablePending: true, the verifier treats every pact, including brand-new ones, as required, so a not-yet-implemented interaction fails the build.
No branch or selector context for pending logic
Pending status is computed relative to the main branch; missing branch/selector info prevents the broker from marking a pact pending.
How to fix it
Enable pending pacts on the provider
- Set
enablePending: truein the verifier options. - Provide the provider version and branch so pending status can be computed.
- Re-run; new pacts now report as pending instead of failing.
await new Verifier({
provider: 'orders-provider',
providerVersion: process.env.GIT_SHA,
providerVersionBranch: process.env.GIT_BRANCH,
enablePending: true,
publishVerificationResult: true,
}).verifyProvider();Combine with WIP pacts for in-progress work
Add includeWipPactsSince so contracts still being developed are surfaced but never fail the build.
includeWipPactsSince: '2026-01-01'How to prevent it
- Enable pending pacts so new consumer contracts do not break the provider.
- Pass provider branch so pending status is computed correctly.
- Use WIP pacts for contracts under active development.