GitHub
03/18/2026, 5:45 PMEncoding::CompatibilityError when running pact verification on Linux 64bit (consumer test is fine) with a pact containing unicode (chinese) characters. It also fails with emojis.
Runtime details:
• Version: pact-1.2.0-linux-x86_64.tar.gz
• OS: Linux ip-172-30-13-202 3.13.0-62-generic #102-Ubuntu SMP Tue Aug 11 142936 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
See pact-foundation/pact-go#41
Note that I've tested this on OSX and it's not a problem.
Command:
./pact/bin/pact-provider-verifier --pact-urls ./matching_service-animal_profile_service.json --provider-base-url <http://localhost:8000>
Stack trace:
ubuntu@ip-172-30-13-202:/tmp$ ./pact/bin/pact-provider-verifier --pact-urls ./matching_service-animal_profile_service.json --provider-base-url <http://localhost:8000>
Reading pact at ./matching_service-animal_profile_service.json
/tmp/pact/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/pure/parser.rb:242:in `rescue in parse_string': Caught Encoding::CompatibilityError at '{ (JSON::ParserError)
"consumer": {
': incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/pure/parser.rb:213:in `parse_string'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/pure/parser.rb:257:in `parse_value'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/pure/parser.rb:121:in `parse'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/common.rb:155:in `parse'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/json-1.8.6/lib/json/common.rb:334:in `load'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-support-1.1.5/lib/pact/consumer_contract/consumer_contract.rb:42:in `from_json'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/rspec.rb:25:in `honour_pactfile'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/pact_spec_runner.rb:129:in `block in initialize_specs'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/pact_spec_runner.rb:125:in `each'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/pact_spec_runner.rb:125:in `initialize_specs'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/provider/pact_spec_runner.rb:34:in `run'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/cli/run_pact_verification.rb:60:in `run_with_pact_uri'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/cli/run_pact_verification.rb:48:in `run_specs'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/cli/run_pact_verification.rb:22:in `call'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-1.14.0/lib/pact/cli/run_pact_verification.rb:14:in `call'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.1.4/lib/pact/provider_verifier/app.rb:66:in `block in verify_pacts'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.1.4/lib/pact/provider_verifier/app.rb:57:in `collect'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.1.4/lib/pact/provider_verifier/app.rb:57:in `verify_pacts'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.1.4/lib/pact/provider_verifier/cli.rb:21:in `verify'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/thor-0.19.4/lib/thor/command.rb:27:in `run'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/thor-0.19.4/lib/thor/invocation.rb:126:in `invoke_command'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/thor-0.19.4/lib/thor.rb:369:in `dispatch'
from /tmp/pact/lib/vendor/ruby/2.2.0/gems/thor-0.19.4/lib/thor/base.rb:444:in `start'
from /tmp/pact/lib/app/pact-provider-verifier.rb:2:in `<main>'
Pact file (matching_service-animal_profile_service.json):
{
"consumer": {
"name": "Matching Service"
},
"provider": {
"name": "Animal Profile Service"
},
"interactions": [
{
"description": "a request for projects",
"provider_state": "i have a list of projects",
"request": {
"method": "GET",
"path": "/projects",
},
"response": {
"status": 200,
"body": [
{
"name": "Project 好"
}
]
}
}
],
"metadata": {
"pactSpecificationVersion": "2.0.0"
}
}
See pact-foundation/pact-go#41 for original issue.
pact-foundation/pact-standaloneGitHub
03/18/2026, 5:45 PM