Gabriel Vasconcelos
06/09/2025, 10:56 AMJames Fraser
06/17/2025, 8:41 AMCopy Sys. Account UUID
Where can I get it? 😅David McKinney
06/20/2025, 10:31 AM2025-06-20T09:55:08.050264Z INFO ThreadId(16) pact_verifier: Running setup provider state change handler with empty state for 'a setCurrentPage event with empty pageId'
2025-06-20T09:55:08.050280Z INFO ThreadId(16) pact_verifier: Running provider verification for 'a setCurrentPage event with empty pageId'
2025-06-20T09:55:08.050295Z INFO ThreadId(16) pact_verifier::provider_client: Sending request to provider at <http://localhost:56254/>
2025-06-20T09:55:08.050300Z INFO ThreadId(16) pact_verifier::provider_client: Sending request HTTP Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(58 bytes, application/json) )
[10:55:08.052] ERROR (8141): pact@15.0.1: no handler found for message a setCurrentPage event with empty pageId
Pactfile - https://pastebin.com/zqtfunst
Consumer - https://pastebin.com/8MqM3Sre
Provider - https://pastebin.com/fNTH9cSc
My consumer tests will pass, generate the pactfile, it looks correct
But on running the provider tests using jest it seems to use default http verifierJocelyn Lecomte
06/21/2025, 10:14 AMMilda
06/24/2025, 9:23 AMstatus=400 {"title":"Validation errors","type":"<https://problems-registry.smartbear.com/validation-error>","status":400,"instance":"/","errors":[{"detail":"content could not be parsed as application/json","pointer":"#/contract/content"},{"detail":"content when Base64 decoded and parsed must be a hash","pointer":"#/contract/content"}]}Zachary Lysobey
06/24/2025, 9:42 PMCody Jenkins
07/08/2025, 5:27 AMMatt Corby
07/09/2025, 9:06 AMDominic Gara
07/09/2025, 10:05 AMMatt Corby
07/09/2025, 2:22 PM/pacticipants/saq-summary-etl/versions/4b4c8962c8f7243a28cdeda7cbcbf7b7d90ae41a/deployed-versions/environment/6433116c-b3cd-48ce-bd0d-ed2a12b844ee - any ideas? The response is:
404 . {"error":"The requested document was not found on this server."}Kevin de Boer
07/10/2025, 8:05 AMDmytro Kryvenko
07/11/2025, 10:55 AMRishav Singh
07/23/2025, 11:07 AMERROR: Server error: 500 Internal Server Error , maybe can you help ? it is generating for happy path but failing 400, 404 etcDavid Mason
07/28/2025, 8:05 AMFAILED integration_tests/pact/v3/test_can_i_merge.py::test_can_i_merge - RuntimeError: can-i-merge failed: Error retrieving matrix. PactBroker::Client::Hal::ErrorResponseReturned - Error making request to <https://xxx-xxx.pactflow.io/matrix> status=404 Not Found. The requested document was not found on this server.
Using pact-cli to run can-i-merge (unchanged):
docker run --rm pactfoundation/pact-cli:latest pact-broker can-i-merge --broker-base-url={pact_broker_base_url} --broker-token={pact_broker_token} --pacticipant a --pacticipant bOleksandr.Boiko
07/28/2025, 8:19 AMMarlin Dalpozzo
07/28/2025, 8:38 PMcan-i-deploy in our CI/CD system to check the compatibility of our Provider with our Consumer contracts. We would like detailed information about the contract validation failure (i.e. what specific request properties don't match etc), but unfortunately it seems like the default response from can-i-deploy lacks that information and links to the /contracts/bi-directional/provider/<provider>/version/<version>/consumer/<consumer>/version/<version>/cross-contract-verification-results page in the pactflow ui. There is documentation that implies that this information can be retrieved programmatically via the pactflow API
https://docs.pactflow.io/docs/bi-directional-contract-testing/compatibility-checks/#api-resources
crossContractVerificationResults contains the information we want
We have tried various ways to make requests to that url, but couldn't get it to work. We always receive {"title":"404 Not Found","type":"<https://problems-registry.smartbear.com/not-found>","detail":"The requested document was not found on this server.","status":404}
How can we retrieve the contract verification results programmatically?David Mason
07/29/2025, 2:32 PM{
"target": {
"ref_type": "branch",
"type": "pipeline_ref_target",
"ref_name": "${pactbroker.providerVersionBranch}",
"selector": {
"type": "custom",
"pattern": "pi-verify-pacts"
}
},
"variables": [
{
"key": "PACT_URL",
"value": "${pactbroker.pactUrl}"
},
{
"key": "PACT_PROVIDER_VERSION",
"value": "${pactbroker.providerVersionNumber}"
},
{
"key": "PACT_PROVIDER_BRANCH",
"value": "${pactbroker.providerVersionBranch}"
},
{
"key": "PACT_PROVIDER_NAME",
"value": "${pactbroker.providerName}"
},
{
"key": "PACT_CONSUMER_VERSION",
"value": "${pactbroker.consumerVersionNumber}"
},
{
"key": "PACT_CONSUMER_BRANCH",
"value": "${pactbroker.consumerVersionBranch}"
},
{
"key": "PACT_CONSUMER_NAME",
"value": "${pactbroker.consumerName}"
}
]
}
${pactbroker.providerVersionBranch} and ${pactbroker.providerVersionNumber} are resolving to an empty string, which causes the webhook to fail.
For now I'll hope that this is just the "test webhook" functionality that's broken at the moment. I'll let you know if the problem persists.Eddie Stanley
08/11/2025, 8:48 PMContract published that requires verification webhook), what are the rules for determining the pactbroker.pactUrl that we use in the payload?
If the webhook runs for two different provider versions (as shown in the screenshot), should that pactbroker.pactUrl be the same or different for the two invocations?Kinkini Gamage
08/13/2025, 12:38 AMconst stateHandlers = {
"products exists": () => {
controller.repository.products = new Map([
["10", new Product("10", "CREDIT_CARD", "28 Degrees", "5678")],
]);
},
"products exist": () => {
controller.repository.products = new Map([
["10", new Product("10", "CREDIT_CARD", "28 Degrees", "5678")],
]);
},
"a product with ID 10 exists": () => {
controller.repository.products = new Map([
["10", new Product("10", "CREDIT_CARD", "28 Degrees", "5678")],
]);
},
"a product with ID 11 does not exist": () => {
controller.repository.products = new Map();
},
};
My Question:
1. Can I use a real database instead? Instead of manually setting up test data in stateHandlers, can I point my provider verification to use a real database environment (like staging/test DB) to fetch actual data?
2. Can I completely avoid stateHandlers? Is it possible to connect directly to my working environment (staging/test database) and eliminate the need for stateHandlers altogether?
Use Case:
• I want to avoid maintaining test data in code
• Prefer using real data from my test/staging environment
• This would be especially useful for webhook-triggered verifications when consumer contracts are updated
Is this possible/recommended? If so, how would I configure the provider verification to use an actual database connection instead of in-memory test data?
Any guidance or examples would be greatly appreciated! 🙏
Thanks!Daniel Phillips
08/14/2025, 10:27 AM"message": "discriminator: oneOf subschemas (or referenced schemas) must have \"properties/transactionType\""
What I cannot understand is why it's complaining about the transactionType not being declared within subschemas, when all of them explicityly define it alongside a fixed enum value.
Here is a sample of what my schema definitions look like:
Transaction:
required:
- transactionDetails
- transactionType
type: object
properties:
transactionType:
type: string
description: 'Type of transaction. Used as a discriminator for polymorphic deserialization.'
example: transaction_a
transactionDetails:
$ref: '#/components/schemas/TransactionDetails'
description: Transaction Details
discriminator:
propertyName: transactionType
oneOf:
- $ref: '#/components/schemas/TransactionA'
- $ref: '#/components/schemas/TransactionB'
TransactionA:
required:
- transactionDetails
- transactionType
type: object
description: Transaction A Details
allOf:
- $ref: '#/components/schemas/Transaction'
- type: object
properties:
transactionDetails:
$ref: '#/components/schemas/TransactionADetails'
transactionType:
type: string
description: Constant discriminator identifying this transaction subtype
readOnly: true
example: transaction_a
enum:
- transaction_a
TransactionB:
required:
- transactionDetails
- transactionType
type: object
description: Transaction B Details
allOf:
- $ref: '#/components/schemas/Transaction'
- type: object
properties:
transactionDetails:
$ref: '#/components/schemas/TransactionBDetails'
transactionType:
type: string
description: Constant discriminator identifying this transaction subtype
readOnly: true
example: transaction_b
enum:
- transaction_bDaniel Phillips
08/28/2025, 11:12 AMAVJ processing has been throwing the error: "message": "discriminator: mapping is not supported".
It seems to me like something has changed on the Pactflow side?
For example if I reupload the latest working version of my OAS spec, Pactflow processes it correctly. It looks like it's loading the comparison from cache as it shows:
Comparison details
Compared at
2025-08-18 11:57:19 GMT+1
Verifier
pactflow-openapi-pact-comparator
Version
1.5.1
Then, if I simply change the version attribute in the OAS and no changes whatsoever to the rest of the OAS, I get the error
info:
version: {bump this}
I can also see that the comparison details show a brand new comparison:
Comparison details
Compared at
9 minutes ago
Verifier
pactflow-openapi-pact-comparator
Version
1.6.0
The key difference seems to be that version 1.6.0 throws the error on identical yaml contentsGabriel Vasconcelos
08/28/2025, 11:25 AMboden winkel
10/14/2025, 12:08 PMAlex Kaufman
10/23/2025, 8:39 PMLavanya
10/27/2025, 10:47 AMJun Yi
10/28/2025, 9:52 AM(saml) Authentication failure! invalid_ticket: OneLogin::RubySaml::ValidationError, Found an unexpected number of Signature Element. SAML Response rejected
I reviewed the environment variable documentation here: https://docs.pactflow.io/docs/on-premises/environment-variables
, but couldn’t find any variables related to configuring a SAML client ID or client secret.
Could anyone please advise whether these settings are supported, or if there’s an alternative way to configure them for SAML integration with Keycloak?
Thank you!Matt (pactflow.io / pact-js / pact-go)
Wojciech Wroblewski
11/03/2025, 4:26 PM[run-consumer-contract-tests/Contract Tests - Consumer/Publish provider's contract for JS services] ☁ git clone '<https://code>.(...).com/pactflow/actions' # ref=v2
[run-consumer-contract-tests/Contract Tests - Consumer/Publish provider's contract for JS services] [DEBUG] cloning <https://code>.(...).com/pactflow/actions to /Users/(...)/.cache/act/pactflow-actions-publish-pact-files@v2
[run-consumer-contract-tests/Contract Tests - Consumer/Publish provider's contract for JS services] Unable to clone <https://code>.(...).com/pactflow/actions refs/heads/v2: repository not found: Repository not found.
[run-consumer-contract-tests/Contract Tests - Consumer/Publish provider's contract for JS services] repository not found: Repository not found.
[run-consumer-contract-tests/Contract Tests - Consumer/Publish provider's contract for JS services] [DEBUG] skipping post step for 'Archive App Run Log'; step was not executed
[run-consumer-contract-tests/Contract Tests - Consumer/Publish provider's contract for JS services] [DEBUG] skipping post step for 'pactflow/actions/publish-pact-files@v2'; step was not executed
It looks like it's trying to get that action from our GHEC server. I also tried to set github-server-url first for checkout action.
How should I use it when working on GHEC? Preferably not copying that action repo to our instance
*I hope I used proper channelJun Yi
11/10/2025, 8:45 AMError: MPC -32602: MCP error -32602: Invalid arguments for tool contract-testing_generate_pact_tests: [
{
"received": "python",
"code": "invalid_enum_value",
"options": [
"javascript",
"typescript",
"java",
"golang",
"dotnet",
"kotlin",
"swift",
"php"
],
"path": [
"language"
],
"message": "Invalid enum value. Expected 'javascript' | 'typescript' | 'java' | 'golang' | 'dotnet' | 'kotlin' | 'swift' | 'php', received 'python'"
}
]
Thanks!Fábio Rodrigues
11/10/2025, 3:35 PM