Pact "can-i-deploy ... Computer says no" blocking deploy in CI
can-i-deploy checks the broker matrix for a successful verification between the version you want to deploy and its integration partners. "Computer says no" means a required verification is missing or failed, so deploying now would break a consumer or provider.
What this error means
The can-i-deploy step exits non-zero with "Computer says no" and a matrix showing an unverified or failed row for the version being deployed.
Computer says no ¯\_(ツ)_/¯
CONSUMER | C.VERSION | PROVIDER | P.VERSION | SUCCESS?
--------------|-----------|-----------------|-----------|--------
web-consumer | 5f3a1c | orders-provider | ??? | false
There is no verified pact between web-consumer version 5f3a1c and orders-provider.Common causes
The provider has not verified this pact yet
The consumer version was published but no provider build has verified it, so there is no successful result for the gate to pass.
The latest verification failed
A provider verification ran but failed, so the matrix records false and can-i-deploy blocks the deploy.
How to fix it
Verify the pact, then re-check
- Trigger or wait for the provider to verify this consumer version.
- Confirm the provider published a successful verification result.
- Re-run can-i-deploy for the same version and environment.
pact-broker can-i-deploy \
--pacticipant web-consumer --version "$GIT_SHA" \
--to-environment production \
--broker-base-url "$PACT_BROKER_BASE_URL"Fix the failing verification
If the matrix shows a failed verification, resolve the mismatch on the provider or consumer and republish so the result flips to success.
How to prevent it
- Run provider verification and publish results before deploy checks.
- Gate deploys on can-i-deploy for the target environment.
- Publish verification results with the provider version so the matrix fills in.