https://pact.io logo
Join Slack
Powered by
# pact-net
  • g

    GitHub

    06/14/2025, 1:34 PM
    #523 chore(deps): bump System.Text.Json from 8.0.2 to 8.0.5 in /src/PactNet.Abstractions Pull request opened by dependabot[bot] Bumps System.Text.Json from 8.0.2 to 8.0.5. [Dependabot compatibility score](https://camo.githubusercontent.com/83a80808250b8d7de5b1c5c1881019cdb26e6e54015140cf9970290c2096bdff/68747470733a2f2f646570656e6461626f742d6261646765732e6769746875626170702e636f6d2f6261646765732f636f6d7061746962696c6974795f73636f72653f646570656e64656e63792d6e616d653d53797374656d2e546578742e4a736f6e267061636b6167652d6d616e616765723d6e756765742670726576696f75732d76657273696f6e3d382e302e32266e65772d76657273696f6e3d382e302e35) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
    @dependabot rebase
    . --- Dependabot commands and options You can trigger Dependabot actions by commenting on this PR: •
    @dependabot rebase
    will rebase this PR •
    @dependabot recreate
    will recreate this PR, overwriting any edits that have been made to it •
    @dependabot merge
    will merge this PR after your CI passes on it •
    @dependabot squash and merge
    will squash and merge this PR after your CI passes on it •
    @dependabot cancel merge
    will cancel a previously requested merge and block automerging •
    @dependabot reopen
    will reopen this PR if it is closed •
    @dependabot close
    will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually •
    @dependabot show <dependency name> ignore conditions
    will show all of the ignore conditions of the specified dependency •
    @dependabot ignore this major version
    will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) •
    @dependabot ignore this minor version
    will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) •
    @dependabot ignore this dependency
    will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page. pact-foundation/pact-net
    • 1
    • 1
  • r

    Ryan Child

    06/18/2025, 3:00 PM
    Hey everyone, is there a way to specify the URL to use for pact messages? It seems to grab the base URL from the "WithHttpEndpoint" method and slaps on a port + "/pact-messages". The issue is that the URL we pass in when running this in a pipeline is an APIM URL, so it gets a 404. We need it to use localhost when calling for the pact messages
    m
    • 2
    • 4
  • z

    Zachary Lysobey

    06/20/2025, 12:56 PM
    @Zachary Lysobey has left the channel
  • g

    GitHub

    06/20/2025, 2:19 PM
    #544 MessageProvider listening on localhost returns 404 Issue created by scrocquesel-ml150 Version information: • OS: WSL with Windows x64 • PactNet Version: 5.0.1 • .Net Version: 8.0 Describe the bug I'm trying to verify message interaction for a producer. The sample project in this repo works fine, but with my project, when pact tries to request
    <http://localhost:41952/pact-messages/>
    , it receive a 404 response without going through the
    HandleRequest
    method of
    MessageProvider
    . If I modify the prefix uri with
    127.0.0.1
    , then it works in all cases. What is important is that the Uri added to the HttpListener must be
    127.0.0.1
    . Then, the returned uri can be the
    ip
    or
    localhost
    it works in both cases. I know it is connecting to the listener somehow because if I comment out the start of the HttpListener, then it cannot connect. There is definetely something going in the middle with
    localhost
    but I can't figure it out. Steps To Reproduce I didn't succeed yet identifying what's going on. Expected behavior The listener should be able to receive pact_verifier request Log Output
    Copy code
    2025-06-20T13:58:12.662599Z DEBUG ThreadId(01) verify_interaction{interaction="A valid message"}: reqwest::connect: starting new connection: <http://127.0.0.1:49152/>    
    2025-06-20T13:58:12.662613Z DEBUG ThreadId(01) verify_interaction{interaction="A valid message"}: hyper_util::client::legacy::connect::http: connecting to 127.0.0.1:49152
    2025-06-20T13:58:12.662888Z DEBUG ThreadId(01) verify_interaction{interaction="A valid message"}: hyper_util::client::legacy::connect::http: connected to 127.0.0.1:49152
    2025-06-20T13:58:12.691760Z DEBUG ThreadId(01) verify_interaction{interaction="A valid message"}: hyper_util::client::legacy::pool: pooling idle connection for ("http", 127.0.0.1:49152)
    2025-06-20T13:58:12.691815Z DEBUG ThreadId(01) verify_interaction{interaction="A valid message"}: pact_verifier::provider_client: Received native response: Response { url: "<http://127.0.0.1:49152/pact-messages>", status: 404, headers: {"content-type": "text/html", "server": "Microsoft-NetCore/2.0", "date": "Fri, 20 Jun 2025 13:58:12 GMT", "content-length": "30"} }
    2025-06-20T13:58:12.691945Z  INFO ThreadId(01) verify_interaction{interaction="A valid message"}: pact_verifier::provider_client: Received response: HTTP Response ( status: 404, headers: Some({"content-type": ["text/html"], "server": ["Microsoft-NetCore/2.0"], "date": ["Fri, 20 Jun 2025 13:58:12 GMT"], "content-length": ["30"]}), body: Present(30 bytes, text/html) )
    2025-06-20T13:58:12.691967Z DEBUG ThreadId(01) verify_interaction{interaction="A valid message"}: pact_verifier::provider_client: body:
    <h1>Not Found (Not Found)</h1>
    pact-foundation/pact-net
  • t

    Tiago Bernardo

    06/25/2025, 3:26 PM
    hello people! First time doing contract testing, and would appreciate some help. Im creating a consumer test with: pactBuilder .ExpectsToReceive("response") .Given("Received x") On the producer side I can do: verifier .WithMessages(scenarios => { scenarios.Add("response", builder => { builder. WithContent(() => ""); }); But how do I consume the ".Given("Received x")"? I've tried reading the docs but I could not find anything related to this (Im using Messages not HttpRequests)
    m
    • 2
    • 1
  • j

    Jegadeesan Ponnusamy

    06/26/2025, 3:29 PM
    Hi, We wanted to write consumer tests for a swagger with oneof, anyOf key words. It seems that Pactflow supports these keywords using
    discriminator
    , but the Pact.NET library doesn't seems to support this. Could you please let us know, how we should proceed further to test this? Thank you. https://docs.pactflow.io/docs/bi-directional-contract-testing/contracts/oas/keyword-support#general-advice
    m
    • 2
    • 5
  • l

    Lindsay Duncan

    07/03/2025, 2:25 PM
    Hello, Are there plans to upgrade Xunit to xunit.v3?
    b
    • 2
    • 1
  • a

    Aaron Small

    07/07/2025, 5:09 AM
    Hello 👋 I love the idea of Pact, I think it would be perfect for my workplace and have spent some time writing a basic test over a dotnet web API. When setting these tests up I surprised that the tests required my app to be running! Additionally setting up data so that the endpoint even functioned was a pain, as I was trying to test a feature which required data set up ahead of time using other api endpoints. I've got a setup which runs a fake http server, using my actual controller but mocking db calls, which is kind of nice, but I don't like how much additional code and maintenance overhead this will cost us. Question 1: Does Pact require my app to be up and running or can it run some other way? How do you all make it work? Example code of my provider test
    Copy code
    using var pactVerifier = new PactVerifier("MyService", config);
    
    pactVerifier
      .WithHttpEndpoint(new Uri("<http://localhost:5001>"))
      .WithFileSource(new FileInfo(pactPath))
      .Verify();
    Thanks!
    👋 1
    m
    r
    • 3
    • 4
  • g

    GitHub

    07/10/2025, 9:54 PM
    #545 PublishResult with / in the provider branch name fails Issue created by scrocquesel Version information: • OS: Linux • PactNet Version: 5.0.1 • .Net Version: 8 • Pact Broker Version (if applicable): 2.107.1 Describe the bug Trying to publish test results with provider branch "/refs/head/test", result in an error
    Copy code
    2025-07-10T21:23:11.928119Z ERROR ThreadId(01) pact_verifier::pact_broker: Failed to push branch refs/head/test for provider version test
    2025-07-10T21:23:11.928223Z ERROR ThreadId(01) pact_verifier: Publishing of verification results failed with an error: Link/Resource was not found - Request to pact broker path '/pacticipants/myprovider/branches/refs%2Fhead%2Ftest/versions/test' failed: 404 Not Found. URL: '<https://pactbroker.com/>'
    Steps To Reproduce
    Copy code
    options.PublishResults(brokerConfig.ProviderVersion, publishOptions =>
                        {
                            publishOptions
                                .BuildUri("<http://test>")
                                .ProviderBranch("/refs/head/test");
                        });
    Expected behavior The provider verification result should be published to a branch with a slash. This is a supported value with the pact cli to publish consumer contract. Log Output See above Additional context Replacing
    /
    with
    -
    make it works. pact-foundation/pact-net
  • d

    David Mason

    07/11/2025, 2:22 PM
    Hi 👋 we're following this page of the pact-net documentation and running into trouble verifying a Message interaction. The method
    PactVerifier.WithMessages
    doesn't exist. Using pact-net 5.0.1 Is this a known issue? What can we do to verify a pact containing interactions with type Asynchronous/Message (pact specification v4)
    m
    d
    • 3
    • 4
  • b

    Bas Dijkstra

    07/15/2025, 10:31 AM
    Quick question: I'm trying to set the provider branch when publishing Pact verification results like this:
    Copy code
    this.verifier!
        .WithHttpEndpoint(PactServiceUri)
        .WithPactBrokerSource(new Uri(Environment.GetEnvironmentVariable("PACT_BROKER_BASE_URL")!), options =>
        {
            options
            .TokenAuthentication(Environment.GetEnvironmentVariable("PACT_BROKER_TOKEN"))
            .PublishResults(Environment.GetEnvironmentVariable("ADDRESS_PROVIDER_VERSION") ?? "1.0.0")
            .ProviderBranch("main");
        })
        .WithProviderStateUrl(new Uri($"{PactServiceUri}provider-states"))
        .Verify();
    However, it doesn't seem to work, the
    ProviderBranch()
    call seems to be ignored. I'm using Pact .Net 5.0.0.
    y
    m
    • 3
    • 5
  • d

    Dominick Campbell

    07/18/2025, 8:20 PM
    @Dominick Campbell has left the channel
  • g

    GitHub

    08/01/2025, 6:46 PM
    #546 feat: pactbuilder can be properly disposed Pull request opened by scrocquesel When creating
    PactHandle
    with
    pactffi_new_pact
    , it need to be freed with
    pactffi_free_pact_handle
    . I implement Disposable interface but not sure how to handle unmanaged resource with finalizer. BTW, I see that pactffi has a dedicated method for message interactions (
    pactffi_new_message_pact
    ,
    pactffi_free_message_pact_handle
    ) and use them. It doesn't change the way the consumer test generate its pact file. pact-foundation/pact-net
  • b

    boden winkel

    08/21/2025, 2:01 PM
    Hi is this tool still alive for .net ? I was trying to create consumer tests for bi-directional approach , using V4 spec and V3 but non of those examples from docs working. IT seems like documenataion is outdated or tool is no longer supported.
    b
    y
    • 3
    • 4
  • g

    GitHub

    08/25/2025, 10:31 AM
    #547 Fix content creation syntax in messaging pacts Pull request opened by indranilmaitihyland pact-foundation/pact-net
    • 1
    • 1
  • g

    GitHub

    09/04/2025, 9:57 PM
    #548 Extract PactNet.Interop package and add Grpc Support Pull request opened by max-lancaster I have read through issue #492 thoroughly and examined the source code and feel that I have a decent understanding of what's involved in adding plugin support, specifically for Grpc. I was able to take @Yousaf Nabi (pactflow.io)'s example and create this PR to get some sample Grpc tests working. I have extracted a
    PactNet.Interop
    package as @adamrodger suggested in Issue #492 . This was not a breaking change since all the classes in this namespace were internal,
    PactNet
    now references this new package and none of the pre-existing interface methods have changed. Extracting this package made it possible to create bare-bones Grpc plugin tests and is effectively a very "raw" way of using any plugin. Perhaps a next step would be to wrap the bare-bones methods in a more fluent "raw" interface in a plugin package similar to implementations in other languages as @Matt (pactflow.io / pact-js / pact-go) suggested. Based on above "raw" tests I was able to refactor and extract shared functionality to create a new
    PactNet.Extensions.Grpc
    library that provides a fluent interface similar to the interfaces for http / rest and asynchronous messaging interactions. An alternative approach here would be to just add
    <InternalsVisibleTo Include="PactNet.Extensions.Grpc" />
    to the PactNet.csproj file but this allows integration of other plugins in repos outside this one so it depends on whether you want to explicitly allow that or not. pact-foundation/pact-net
    💯 1
    m
    m
    y
    • 4
    • 16
  • m

    Martin

    09/05/2025, 11:47 AM
    Hi all, I’m trying to work with message pacts in PactNet where the consumer expects the payload to be
    text/plain
    instead of JSON. What I’ve noticed: • On the consumer side, the DSL only exposes helpers like
    WithJsonContent(...)
    which always serialize the messages to JSON. I don’t see a way to say "the body is raw text and the contentType is `text/plain`". • On the provider side, when using
    .WithMessages(...).WithContent(...)
    , any
    string
    gets serialized as JSON and the content type ends up
    application/json
    . I don’t see an overload that doesn't take the JsonSerializationOptions. So essentially: I don’t see a way in PactNet to produce or verify a message pact where the body is plain text and the content type is
    text/plain
    . 👉 My questions: • Is this a known limitation in PactNet? • Or is there some sample code / workaround that shows how to handle non-JSON content types (like
    text/plain
    ) in message pacts on .NET? We’re using PactNet 5.0.1 (
    PactNet
    +
    PactNet.Abstractions
    ). Thanks in advance!
    👋 1
    m
    • 2
    • 1
  • g

    GitHub

    09/05/2025, 2:40 PM
    #549 PactNet.sln line endings are in illegal git state Issue created by max-lancaster When interactively rebasing and editing a commit or checking out a new branch the PactNet.sln file line endings get modified which makes a lot of git functionality unusable. Issue is described in this stack overflow issue. I have reproduced this on both Mac Os and Windows so it is not an OS specific defect. To reproduce if you just clone the repo and do a
    git status
    you will see that PactNet.sln all line-endings have immediately changed. Potential solution is described in the accepted answer of the above referenced SO post. Appears that the root cause may be that line endings were not renormalized (
    git add --renormalize .
    ) when the .gitattributes file was added. pact-foundation/pact-net
    • 1
    • 1
  • p

    Paul

    09/12/2025, 5:17 AM
    @Paul has left the channel
  • e

    Elson Ho

    09/19/2025, 2:31 AM
    @Elson Ho has left the channel
  • g

    GitHub

    09/20/2025, 4:01 PM
    1 new commit pushed to
    <https://github.com/pact-foundation/pact-net/tree/master|master>
    by adamrodger
    <https://github.com/pact-foundation/pact-net/commit/8b8841d4074c17363fa22e62a105711e88eb24a4|8b8841d4>
    - Fix content creation syntax in messaging pacts pact-foundation/pact-net
  • g

    GitHub

    09/20/2025, 7:12 PM
    1 new commit pushed to
    <https://github.com/pact-foundation/pact-net/tree/master|master>
    by adamrodger
    <https://github.com/pact-foundation/pact-net/commit/3f59bf7cb00124635b6d421a033b2a4a72c4c3c9|3f59bf7c>
    - fix(#549): EditorConfig settings for sln files pact-foundation/pact-net
  • g

    GitHub

    09/30/2025, 10:43 AM
    #550 RFC: Support for synchronous messaging Issue created by evoclint Do you intend to implement synchronous messaging? I can see in the roadmap it isn't yet supported for PactNet, if you intend to support it do you have a rough idea when this will be? pact-foundation/pact-net
  • g

    GitHub

    10/07/2025, 10:58 PM
    #551 Add Synchronous Plugin Interaction Support Pull request opened by max-lancaster @adamrodger I took your commit in the dev/plugins branch that you referenced in Issue #492 and made a "raw" plugin implementation that should work with the
    PactNet.Extensions.Grpc
    package I created in PR #548. There may still be some design issues to consider. One thing to note is that Plugins can have both synchronous and asynchronous interactions so I made my builder specific to the synchronous use case so we can add an asynchronous version at some point. pact-foundation/pact-net
    🎉 1
    epicwin 1
  • k

    Kieran McCarthy

    10/11/2025, 10:49 AM
    @Kieran McCarthy has left the channel
  • g

    GitHub

    10/14/2025, 10:04 AM
    #552 Request Failed : builder error for url (message://localhost:49152/pact-messages) Issue created by ibrar434 I have updated the Pactnet From 4.0.5 to 5.0.1 but when i run same messaging test that continuously returns the error I don't understand why this happening even i have updated the code with required changes but this issue comes again and again here is my consumer side code [Image](https://private-user-images.githubusercontent.com/212374163/500884627-2bea34d1-68ad-4bc8-a0d9-e222d76147ed.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjA0NTE3MzksIm5iZiI6MTc2MDQ1MTQzOSwicGF0aCI6Ii8yMTIzNzQxNjMvNTAwODg0NjI3LTJiZWEzNGQxLTY4YWQtNGJjOC1hMGQ5LWUyMjJkNzYxNDdlZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMDE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTAxNFQxNDE3MTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xN2E5NDRiN2EzODhkMzk3ZTZlODY5ZGQyOGJiMmViMWNiOTQ3YTNjN2ViNjJkN2JjYWY1YWIxODlhNGFhZmQzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.GTCWC7Zw-pOd3mJ7Ux2F9OUrknriboU7bSvaGZgAmNg) here is my proivder side code [Image](https://private-user-images.githubusercontent.com/212374163/500884732-01b66efc-e68a-41c8-813d-bc9acbde74fe.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjA0NTE3MzksIm5iZiI6MTc2MDQ1MTQzOSwicGF0aCI6Ii8yMTIzNzQxNjMvNTAwODg0NzMyLTAxYjY2ZWZjLWU2OGEtNDFjOC04MTNkLWJjOWFjYmRlNzRmZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMDE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTAxNFQxNDE3MTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04OTA1YzQ5OWM5MTc0NzA1NWZjM2FjZjg1ZGM2MGM0MzI0MGY3ODM2MDhhNjU0NjI4MTQyNWUzOWYyOWU4NDgzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.kfQ4gflSWDATNG_9P-SItjmFP1ninjlTM7PxJ4NBcbg) and this is the scenerio [Image](https://private-user-images.githubusercontent.com/212374163/500884785-65907d7d-95ee-447f-a358-5812728776e7.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjA0NTE3MzksIm5iZiI6MTc2MDQ1MTQzOSwicGF0aCI6Ii8yMTIzNzQxNjMvNTAwODg0Nzg1LTY1OTA3ZDdkLTk1ZWUtNDQ3Zi1hMzU4LTU4MTI3Mjg3NzZlNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMDE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTAxNFQxNDE3MTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jYjY2ZWE1NmVlYjdmNDc1MjRhZDJkZjUyZjM4MDVlODVlMmZhODhmNDljZDViYjI4ZTIyMTBmYjYwMGJmNmY1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.9cw_QTdbwd0kOgMUC-4mJGHTRIlH60gfcsZUsShIvS8) if any idea please help Request Failed - builder error for url (message://localhost:49152/pact-messages) Image pact-foundation/pact-net
    • 1
    • 1
  • g

    GitHub

    10/15/2025, 5:09 AM
    #553 Verifying a pact between Web-PermissionsModule and Customers-API Given user does not exist - request to create user Issue created by ibrar434 @akamud edit: don’t tag maintainers in issues! I updated my pactnet From 4.5.0 to 5.0.1 but all the test which work pefectly fine in previous version which is front end related but now is making issue these are also api test where grpc calls inculdes Frontend side code for generating files [Image](https://private-user-images.githubusercontent.com/212374163/501293609-b7fbad70-d4b2-4d14-8db9-04894a6e6e4d.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjA1MjIxODgsIm5iZiI6MTc2MDUyMTg4OCwicGF0aCI6Ii8yMTIzNzQxNjMvNTAxMjkzNjA5LWI3ZmJhZDcwLWQ0YjItNGQxNC04ZGI5LTA0ODk0YTZlNmU0ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMDE1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTAxNVQwOTUxMjhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yNjg1ZTIyNTkyNTBiNGVkMjUyNzFiODMzZjAwYmQ1MTQ1MWI1ZWZkZTg0ZDAxYWE2NWQ4OTQ5MDc4NTVkZGU5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ij23IC1oZAhvIu0e_Lz5azjucgJFSHexqLpUso5YGJg) i just change in ApiProivdertest [Image](https://private-user-images.githubusercontent.com/212374163/501290049-b98d1fc1-78fc-434c-952e-bbf1a5bbc64d.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjA1MjIxODgsIm5iZiI6MTc2MDUyMTg4OCwicGF0aCI6Ii8yMTIzNzQxNjMvNTAxMjkwMDQ5LWI5OGQxZmMxLTc4ZmMtNDM0Yy05NTJlLWJiZjFhNWJiYzY0ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMDE1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTAxNVQwOTUxMjhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04OTMxNjFkNDg5NzliYzJkODU1ZDcwZmE3OWIxODI5YTdhOTFiYWVhYTg1NTVhMTE0NjA5YjZjMmNjMTlmYjA5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.lOEeXmra1YnXMWQXpV5r-A9cxKndoU4nkotqVCiDXlo) Exception is this [Image](https://private-user-images.githubusercontent.com/212374163/501293412-4a07a063-9b69-4904-a13c-89fed8b84acc.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjA1MjIxODgsIm5iZiI6MTc2MDUyMTg4OCwicGF0aCI6Ii8yMTIzNzQxNjMvNTAxMjkzNDEyLTRhMDdhMDYzLTliNjktNDkwNC1hMTNjLTg5ZmVkOGI4NGFjYy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMDE1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTAxNVQwOTUxMjhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xM2RlYzJmNWQ3MjM5MzI1YTZjM2EzMDAxZDBjNTg1M2RiNzQ3NTAzYWFkN2NkMWEyODc3ZmIzNTY1YWY4NGUzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.PMdFcE7Oe2T0pnebVvPq8RWPYCoGjGenQM_s1R56xiM) Same Code works in previous but now after updating file not work and gives this exception if anyone have idea please let me know and help pact-foundation/pact-net
    • 1
    • 2
  • g

    GitHub

    10/22/2025, 9:38 PM
    #506 Fix/numeric provider state param Pull request opened by YOU54F on <!date^1718020963^{date_short}|2024-06-10T12:02:43Z> fixes #449 • Added examples of generating provider states with number or string values • Serialise value into json, prior to sending over the wire • As per recommendation in pact-foundation/pact-reference#263 (comment) • As per pact-js https://github.com/pact-foundation/pact-js/blob/54087fa06e485f1c7041a0a6f7f14e1cc177e09f/src/v3/pact.ts#L100-L102 relates to • pact-foundation/pact-reference#298 • pact-foundation/pact-reference#263 pact-foundation/pact-net
    • 1
    • 1
  • g

    GitHub

    10/22/2025, 9:43 PM
    #502 feat: linux musl detection Pull request opened by YOU54F ## Rationale pact-reference has introduced musl and arm64 based ffi libraries for linux • pact-foundation/pact-reference#416 Tracking Issue • pact-foundation/roadmap#30 ## Issues Resolved fixes #498 fixes #496 fixes #500 fixes #374 fixes #387 ## Backwards Compatibility Linux glibc based hosts take precedence, so if any error occurs during musl detection. I do not anticipate breaking changes for users ## Implementation notes ### .NET notes • Docs • Uses MSBuild Exec task • MSBuild Blog Posts • Cross-Platform Build Events in .NET Core using MSBuild • MSBuild 101: Using the exit code from a command • Stack OverFlow • Set PropertyGroup property to Exec output • .NET runtime musl detection code • https://github.com/dotnet/runtime/blob/a50ba0669353893ca8ade8568b0a7d210b5a425f/src/mono/llvm/llvm-init.proj\#L7 • https://github.com/dotnet/runtime/blob/a50ba0669353893ca8ade8568b0a7d210b5a425f/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs\#L78t ### Conditions for execution musl detection will run if • if linux • if /lib/ld-musl-(x86_64|aarch64).so.1 exists • if ldd bin/sh | grep musl is true (musl lib is loaded, rather than glibc) will continue on error, reverting back to glibc based libaries. ### Supported musl targets should work for multiple musl based distroes if • /lib/ld-musl-(x86_64|aarch64).so.1 exists • ldd is available (available by default in alpine images) Tested on Alpine ARM64 / AMD64. ## Caveats • .NET does not run under QEMU affecting the ability to test multi-arch from a single system • .NET restore can take a long time when running under containers. • Workaround: Set
    DOTNET_NUGET_SIGNATURE_VERIFICATION
    to
    false
    ## Compatibility ### Operating System Due to using a shared native library instead of C# for the main Pact logic only certain OSs are supported: | OS | Arch | Support | | ------------ | ----------- | ---------------- | | Windows | x86 | ❌ No | | Windows | x64 | ✔️ Yes | | Linux (libc) | x86 | ❌ No | | Linux (libc) | x64 | ✔️ Yes | | Linux (musl) | x64 | ✔️ Yes (Tier 2)* | | Linux (libc) | ARM | ✔️ Yes (Tier 3)* | | Linux (musl) | ARM | ✔️ Yes (Tier 3)* | | OSX | x64 | ✔️ Yes | | OSX | ARM (M1/M2) | ✔️ Yes | #### Support • Tier 1 • Established • Full CI/CD support. • Users should not encounter issues • Full reproducible examples running in CI, should be provided by users raising issues • If using musl targets, users should attempt the same test on a libc target (such as debian) • Tier 2 • Recently introduced • Full CI/CD support. • Users may encounter issues • Full reproducible examples running in CI, should be provided by users raising issues • If using musl targets, users should attempt the same test on a libc target (such as debian) • Tier 3 • Recently introduced, No/limited CI/CD support. • Users may encounter issues • Full reproducible examples which can be run by maintainers locally, should be provided by users raising issues pact-foundation/pact-net
    • 1
    • 1
  • g

    GitHub

    10/22/2025, 9:44 PM
    #447 Feat multipart file upload support Pull request opened by Inksprout This PR aims to add partial support for Multipart/form-data requests to be added to the Pact File. It introduces a WithMultipartSingleFileUpload() method that allows the user to to specify a request of multipart/form-data in which a single part is uploaded, which is a file. This functionality is a common use case and uses the underlying Rust FFI method designed for this express purpose. Note this update does not enable Pact-Net to fully support all types of multipart/form-data requests as it does not support requests with multiple parts included. see issue: #410 TODO • Add documentation for the new method pact-foundation/pact-net
    • 1
    • 1