Hello, we're currently attempting to validate a bi...
# pactflow
a
Hello, we're currently attempting to validate a bi-directional contract using can-I-deploy. The problem we're running into is a mismatch between what PactFlow is showing, and what the can-I-deploy tool is returning. Using the same versions and tags on both pacticipants, PactFlow shows the consumer and provider OAS contracts are compatible with one another. However, when running the can-I-deploy, which is part of the CICD process when merging consumer from feature branch to main branch, can-I-deploy returns false. Even when we follow the link that shows the failed interaction that is displayed in the response of can-I-deploy, we see that the contracts pass and are compatible with each other. We attempted deleting consumer contract, and restarting the process, but we run into the issue with the can-I-deploy failing which is preventing us from being able to merge to main (without modifying the pipeline). Any advice on where to go from here?
b
@Abdel Aziz Akkoub can you check the results of the provider’s self verification for that contract?
a
It shows success for the self verification results: ClientSpendAuthority self verification logs
Copy code
<?xml version="1.0" encoding="UTF-8"?>
<testsuites name="client-spend-authority-service" tests="23" time="8.988">
  <testsuite name="Currency / Currency List" id="865f664e-fcd9-46fd-adc2-f6a924445a7d" timestamp="2022-11-22T22:08:32.821Z" tests="2" failures="0" errors="0" time="3.760">
    <testcase name="[GET]::/currencies - Status code is 2xx" time="3.760" classname="ClientSpendAuthorityService"/>
    <testcase name="[GET]::/currencies - Returned value length is 20" time="3.760" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Currency / Currency" id="07845dd0-518a-4ce5-a0e7-6e2143b9f3ea" timestamp="2022-11-22T22:08:32.821Z" tests="2" failures="0" errors="0" time="0.105">
    <testcase name="[GET]::/currencies/:currencyCode - Status code is 2xx" time="0.105" classname="ClientSpendAuthorityService"/>
    <testcase name="[GET]::/currencies/:currencyCode - Correct response" time="0.105" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / GET User Spend Authority List" id="332a0e38-9ea8-494e-93ee-27726ef653b6" timestamp="2022-11-22T22:08:32.821Z" tests="1" failures="0" errors="0" time="0.353">
    <testcase name="[GET]::/spend-authorities/ - Status code is 2xx" time="0.353" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST ADD Spend Authority - manager Single" id="0dc36de1-d8eb-479d-971b-e41cbf873e52" timestamp="2022-11-22T22:08:32.821Z" tests="1" failures="0" errors="0" time="0.364">
    <testcase name="[POST]::/spend-authorities/add - Status code is 2xx" time="0.364" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST ADD Spend Authority - duplicate Spend" id="81ef02a5-8d0b-42e2-93ab-86f0664d712a" timestamp="2022-11-22T22:08:32.821Z" tests="2" failures="0" errors="0" time="0.092">
    <testcase name="[POST]::/spend-authorities/add - Status code is 400" time="0.092" classname="ClientSpendAuthorityService"/>
    <testcase name="Test Response Body" time="0.092" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST ADD Spend Authority - manager Multiple" id="9dfdf9f8-def7-45a4-bdcd-290a5e89905c" timestamp="2022-11-22T22:08:32.821Z" tests="1" failures="0" errors="0" time="0.028">
    <testcase name="[POST]::/spend-authorities/add - Status code is 2xx" time="0.028" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST ADD Spend Authority - financial Single" id="f18c543e-0d86-459c-884c-ebdc6e431910" timestamp="2022-11-22T22:08:32.821Z" tests="1" failures="0" errors="0" time="0.013">
    <testcase name="[POST]::/spend-authorities/add - Status code is 2xx" time="0.013" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST Add Spend Authority - Negative amount" id="87b36a3e-9c61-4483-888f-8fd72afcca74" timestamp="2022-11-22T22:08:32.821Z" tests="2" failures="0" errors="0" time="0.018">
    <testcase name="[POST]::/spend-authorities/add - Response status code is 400" time="0.018" classname="ClientSpendAuthorityService"/>
    <testcase name="Test Response Body" time="0.018" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST Add Spend Authority - Invalid spendtype" id="2691a0d4-c636-4289-bb3a-4eef101d03af" timestamp="2022-11-22T22:08:32.821Z" tests="2" failures="0" errors="0" time="0.007">
    <testcase name="[POST]::/spend-authorities/add - Response status code is 400" time="0.007" classname="ClientSpendAuthorityService"/>
    <testcase name="Test Response Body" time="0.007" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST ADD Spend Authority - Invalid  currency code" id="6a9ca6d8-e3dd-42cd-b8ad-553c722db392" timestamp="2022-11-22T22:08:32.821Z" tests="2" failures="0" errors="0" time="0.015">
    <testcase name="[POST]::/spend-authorities/add - Response status code is 400" time="0.015" classname="ClientSpendAuthorityService"/>
    <testcase name="Test Response Body" time="0.015" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST ADD Spend Authority - Amount not numeric" id="9acf0744-e775-440b-9783-4e3fd64b25c3" timestamp="2022-11-22T22:08:32.821Z" tests="2" failures="0" errors="0" time="0.016">
    <testcase name="[POST]::/spend-authorities/add - Response status code is 400" time="0.016" classname="ClientSpendAuthorityService"/>
    <testcase name="Test Response Body" time="0.016" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST ADD Spend Authority - Amount contains decimal" id="5afc1da1-1cd3-4df9-9758-e58ba73981c8" timestamp="2022-11-22T22:08:32.821Z" tests="2" failures="0" errors="0" time="0.006">
    <testcase name="[POST]::/spend-authorities/add - Response status code is 400" time="0.006" classname="ClientSpendAuthorityService"/>
    <testcase name="Test Response Body" time="0.006" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST ADD Spend Authority - missing UserIds" id="0accac12-52c0-456d-9415-7a2a5cffb251" timestamp="2022-11-22T22:08:32.821Z" tests="2" failures="0" errors="0" time="0.008">
    <testcase name="[POST]::/spend-authorities/add - Response status code is 400" time="0.008" classname="ClientSpendAuthorityService"/>
    <testcase name="Test Response Body" time="0.008" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST ADD Spend Authority - empty UserIds" id="46042ea6-c580-4bce-9f53-86cfd2788133" timestamp="2022-11-22T22:08:32.821Z" tests="2" failures="0" errors="0" time="0.010">
    <testcase name="[POST]::/spend-authorities/add - Response status code is 400" time="0.010" classname="ClientSpendAuthorityService"/>
    <testcase name="Test Response Body" time="0.010" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST ADD Spend Authority - invalid UserId" id="356f037c-e53d-4464-91e3-5ee9562b5f68" timestamp="2022-11-22T22:08:32.821Z" tests="2" failures="0" errors="0" time="0.023">
    <testcase name="[POST]::/spend-authorities/add - Response status code is 400" time="0.023" classname="ClientSpendAuthorityService"/>
    <testcase name="Test Response Body" time="0.023" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST- Remove Spend Authority-Invalid currency" id="61bb3ff1-7135-4fef-aa08-a34d21f63da9" timestamp="2022-11-22T22:08:32.821Z" tests="1" failures="0" errors="0" time="0.024">
    <testcase name="[POST]::/spend-authorities/remove - Response status code is 400" time="0.024" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST- Remove Spend Authority-Invalid UserID" id="a58235dc-8ea3-4e8b-bba9-39edd8208a86" timestamp="2022-11-22T22:08:32.821Z" tests="1" failures="0" errors="0" time="0.026">
    <testcase name="[POST]::/spend-authorities/remove - Response status code is 200" time="0.026" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST- Remove Spend Authority-Invalid Spendtype" id="49269c29-ea32-4262-91a2-d179fff2391a" timestamp="2022-11-22T22:08:32.821Z" tests="1" failures="0" errors="0" time="0.007">
    <testcase name="[POST]::/spend-authorities/remove - Response status code is 400" time="0.007" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST- Remove Spend Authority- 401 Unauthorized" id="72e65478-440b-4e2b-b513-29c67fb7270f" timestamp="2022-11-22T22:08:32.821Z" tests="1" failures="0" errors="0" time="0.010">
    <testcase name="[POST]::/spend-authorities/add - Response status code is 401" time="0.010" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST- Remove Spend Authority - manager Single" id="0dd371ce-ac74-4769-843e-d9ef084145f0" timestamp="2022-11-22T22:08:32.821Z" tests="1" failures="0" errors="0" time="0.311">
    <testcase name="[POST]::/spend-authorities/add - Response status code is 200" time="0.311" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST Remove Spend Authority - manager Multiple" id="647c2a69-d414-422a-9809-474ac1b80613" timestamp="2022-11-22T22:08:32.821Z" tests="1" failures="0" errors="0" time="0.012">
    <testcase name="[POST]::/spend-authorities/remove - Response status code is 200" time="0.012" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Spend Authority / POST- Remove Spend Authority - financial Single" id="8fd0498f-be0c-45fe-b54f-bc089e154309" timestamp="2022-11-22T22:08:32.821Z" tests="1" failures="0" errors="0" time="0.009">
    <testcase name="[POST]::/spend-authorities/add - Response status code is 200" time="0.009" classname="ClientSpendAuthorityService"/>
  </testsuite>
  <testsuite name="Api Health Check" id="a411b49a-02fb-4d50-ab3c-bed0e12f0fa4" timestamp="2022-11-22T22:08:32.821Z" tests="1" failures="0" errors="0" time="0.011">
    <testcase name="Status Code is 200 Ok" time="0.011" classname="ClientSpendAuthorityService"/>
  </testsuite>
</testsuites>
message has been deleted
m
Hi @Abdel Aziz Akkoub thanks for that. Could you please raise a support ticket via support@pactflow.io so we can keep track of this request?
b
Can you PM me the link for the problem contracts please @Abdel Aziz Akkoub?
a
Will do Matt. Sent you the link Beth
🙏 1
m
Thanks. Please mention that you are discussing the bug with the Pactflow dev team on slack so it’s routed correctly
👍 1
a
Attempted to send few support emails, but kept getting "_550 5.7.360 Remote server returned message denied by administrative policy -> 550 Administrative prohibition - envelope blocked"._ Is there another email address or another way to create a support ticket?I
b
We’ve just migrated our mail server Abdel, and there have been a few issues. I’ll get someone on to this ASAP.
a
Thanks Beth!
b
We’ll raise your issue directly ourselves.
👍 2
m
FYI I’m told the support email came through despite the bounce looking emails
👍 1
a
Another thing to add. We're trying to ignore the pacticipant that's is causing the failure in Can-I-Deploy, but that also doesn't seem to work. Please see screenshot. Not sure if this is related or needs to be addressed separately. We did post a message in the broker channel, but wanted to share that incase it is related:
b
@Abdel Aziz Akkoub the ignore for BDC is not yet implemented. We have a card for it, and it will be picked up in our next phase of BDC work.
❤️ 1
You can use
PACT_BROKER_CAN_I_DEPLOY_DRY_RUN=true
if you need a “break glass” way of getting a deployment out. https://docs.pact.io/pact_broker/client_cli/readme#can-i-deploy
❤️ 1
a
Thank you so much Beth and Matt! This issue was resolved after we reported it 2 months ago. However, it seems that the same issue has re-surfaced today. Do we need to open a separate ticket?
b
Can you please make a new one, because the old one will be resolved @Abdel Aziz Akkoub