we are getting this error from provider side when ...
# pact-jvm
s
we are getting this error from provider side when we try to run the tests. we are using version 4.6.1. any pointers could help.Invalid JSON (1:4), found unexpected character 'm' au.com.dius.pact.core.support.json.JsonException: Invalid JSON (1:4), found unexpected character 'm'
u
You have invalid formatted JSON. Look at your logs, you should be able to see what was received from your provider
s
thanks for your reply. here are the logs . The logs does not show much information .I am getting this error when I am running the tests on provider side . provider try to connect to pact broker and download the contract file . Test are failing as initialization error ....... Invalid JSON (1:4), found unexpected character 'm' au.com.dius.pact.core.support.json.JsonException: Invalid JSON (1:4), found unexpected character 'm' at app<//au.com>.dius.pact.core.support.json.JsonLexer.unexpectedCharacter(JsonParser.kt:87) at app<//au.com>.dius.pact.core.support.json.JsonLexer.nextToken(JsonParser.kt:78) at app<//au.com>.dius.pact.core.support.json.JsonParser.nextTokenOrThrow(JsonParser.kt:278) at app<//au.com>.dius.pact.core.support.json.JsonParser.parseObject(JsonParser.kt:183) at app<//au.com>.dius.pact.core.support.json.JsonParser.parseArray(JsonParser.kt:254) at app<//au.com>.dius.pact.core.support.json.JsonParser.parse(JsonParser.kt:158) at app<//au.com>.dius.pact.core.support.json.JsonParser.parseString(JsonParser.kt:130) at app<//au.com>.dius.pact.core.pactbroker.PactBrokerClient.fetchPactsUsingNewEndpointRaw(PactBrokerClient.kt:560) at app<//au.com>.dius.pact.core.pactbroker.PactBrokerClient.fetchConsumersWithSelectorsV2(PactBrokerClient.kt:507) at app<//au.com>.dius.pact.provider.junitsupport.loader.PactBrokerLoader.loadPactsForProvider(PactBrokerLoader.kt:248) at app<//au.com>.dius.pact.provider.junitsupport.loader.PactBrokerLoader.load(PactBrokerLoader.kt:128) at app<//au.com>.dius.pact.provider.junit5.PactVerificationInvocationContextProvider$resolvePactSources$pactSources$1$pacts$1.invoke(PactJUnit5VerificationProvider.kt:78) at app<//au.com>.dius.pact.core.support.KotlinLanguageSupportKt.handleWith(KotlinLanguageSupport.kt:35) at app<//au.com>.dius.pact.provider.junit5.PactVerificationInvocationContextProvider.resolvePactSources(PactJUnit5VerificationProvider.kt:78) at app<//au.com>.dius.pact.provider.junit5.PactVerificationInvocationContextProvider.provideTestTemplateInvocationContexts(PactJUnit5VerificationProvider.kt:45) at app//org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.lambda$execute$0(TestTemplateTestDescriptor.java:106) at java.base@17.0.5/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) at java.base@17.0.5/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base@17.0.5/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base@17.0.5/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base@17.0.5/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base@17.0.5/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base@17.0.5/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base@17.0.5/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) at app//org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.execute(TestTemplateTestDescriptor.java:110) at app//org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.execute(TestTemplateTestDescriptor.java:44) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base@17.0.5/java.util.ArrayList.forEach(ArrayList.java:1511) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base@17.0.5/java.util.ArrayList.forEach(ArrayList.java:1511) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54) at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at app//org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62) at java.base@17.0.5/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@17.0.5/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base@17.0.5/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@17.0.5/java.lang.reflect.Method.invoke(Method.java:568) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65) at app<//worker.org>.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) at app<//worker.org>.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74).
m
That's a stack trace, not the logs
s
Untitled
@Matt (pactflow.io / pact-js / pact-go) i have uploaded the logs , could you please have a look . it would be helpful if could show us some pointers
m
Copy code
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger] ProductsPactTest > pactVerificationTestTemplate(PactVerificationContext) > initializationError FAILED
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger]     au.com.dius.pact.core.support.json.JsonException: Invalid JSON (1:4), found unexpected character 'm'
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger]         at app//au.com.dius.pact.core.support.json.JsonLexer.unexpectedCharacter(JsonParser.kt:87)
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger]         at app//au.com.dius.pact.core.support.json.JsonLexer.nextToken(JsonParser.kt:78)
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger]         at app//au.com.dius.pact.core.support.json.JsonParser.nextTokenOrThrow(JsonParser.kt:278)
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger]         at app//au.com.dius.pact.core.support.json.JsonParser.parseObject(JsonParser.kt:183)
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger]         at app//au.com.dius.pact.core.support.json.JsonParser.parseArray(JsonParser.kt:254)
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger]         at app//au.com.dius.pact.core.support.json.JsonParser.parse(JsonParser.kt:158)
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger]         at app//au.com.dius.pact.core.support.json.JsonParser.parseString(JsonParser.kt:130)
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger]         at app//au.com.dius.pact.core.pactbroker.PactBrokerClient.fetchPactsUsingNewEndpointRaw(PactBrokerClient.kt:560)
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger]         at app//au.com.dius.pact.core.pactbroker.PactBrokerClient.fetchConsumersWithSelectorsV2(PactBrokerClient.kt:507)
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger]         at app//au.com.dius.pact.provider.junitsupport.loader.PactBrokerLoader.loadPactsForProvider(PactBrokerLoader.kt:248)
2023-08-14T08:58:26.656+0200 [DEBUG] [TestEventLogger]         at app//au.com.dius.pact.provider.junitsupport.loader.PactBrokerLoader.load(PactBrokerLoader.kt:128)
This error looks to be the problem
when it’s trying to connect to the Pact Broker, it’s not getting a JSON response, but something else. I suspect you would see the actual body at
trace
level, sadly
debug
seems not to print that
My suspicion would be proxy or networking rules
@uglyog I wonder if we should print a better error message in this case, with additional info (e.g. we were expecting a JSON body, but we got a non-JSON body and print out what we received). I think it’s likely network related, and probably proxy
s
It seems like the Gradle does not support the logging level trace and I have also set the logging.level.root= trace but it deos not print the logs
u
Because ProductsPactTest is a JUnit test, you need to set the logging in your test configuration. Setting the logging with Gradle only sets the logs for the Gradle process.
☝️ 1
s
we have solve the issues by commenting out this "`systemProperty("pactbroker.consumerversionselectors.rawjson", "[{\"mainBranch\":true}]")`"
m
Ha! Perhaps the escaping was incorrect then? Given it seems to be tripping up on the
m
Thanks for confirming
youre welcome 1