# Can not use Json API （Protocol version error）

**URL:** <https://forum.canton.network/t/can-not-use-json-api-protocol-version-error/6595>\
**Category:** App Development\
**Created:** [May 26, 2023, 8:12am UTC](https://forum.canton.network/t/can-not-use-json-api-protocol-version-error/6595 "2023-05-26T08:12:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![skylorna](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/skylorna/32/6986_2.png) [@skylorna](https://forum.canton.network/u/skylorna)\
**Post date:** [May 26, 2023, 8:12am UTC](https://forum.canton.network/t/can-not-use-json-api-protocol-version-error/6595/1 "2023-05-26T08:12:27Z")

</div>

check node health it’s ok ,but can not user JsonAPI

 ![image](https://canada1.discourse-cdn.com/flex028/uploads/daml/original/2X/5/55e5a8a1cfc0199459f060de969e1250c9fdfe11.png)  
 ![image](https://canada1.discourse-cdn.com/flex028/uploads/daml/original/2X/9/9a468154b7ba216f46d7e82d6d235e893f3a4406.png)

canton version is 2.6.3 ,how can I fix it?  
this is participant log

```haskell
2023-05-26 16:32:30,322 [canton-env-execution-context-92] INFO c.d.p.a.s.ApiSubmissionService - Submitting commands for interpretation, context: {participant: "participant1", tid: "", commands: {readAs: [], deduplicationPeriod: {duration: "PT168H"}, submittedAt: "2023-05-26T08:32:30.322092Z", ledgerId: "participant1", applicationId: "Test", submissionId: "c01c1a05-a742-4eb3-93ac-5dbfa2d29b73", actAs: ["HK::12200d91fa6b74de5c85025b7f87077a021ddecd7865995a44bc90998f7e39f93be8"], commandId: "63f80c3a-8d63-43b8-b0ff-7036265aab60", workflowId: null}}
2023-05-26 16:32:30,331 [canton-env-execution-context-92] INFO c.d.c.p.s.CantonSyncService:participant=participant1 tid:2e289c3c546da8128156656296f2aa0a - NO_DOMAIN_FOR_SUBMISSION(9,2e289c3c): No valid domain for submission found. err-context:{applicationId=Test, commandId=63f80c3a-8d63-43b8-b0ff-7036265aab60, domainsNotUsed=Map(domain::122069377a85... -> The transaction uses a specific LF version 15 that is supported starting protocol version: 4.Currently the Domain domain::122069377a85... is using 3), location=DomainSelector.scala:206} 
2023-05-26 16:32:30,332 [canton-env-execution-context-92] INFO c.d.p.a.s.ApiSubmissionService - Rejected: Submission failed with error NO_DOMAIN_FOR_SUBMISSION(9,2e289c3c): No valid domain for submission found., context: {participant: "participant1", tid: "", commands: {readAs: [], deduplicationPeriod: {duration: "PT168H"}, submittedAt: "2023-05-26T08:32:30.322092Z", ledgerId: "participant1", applicationId: "Test", submissionId: "c01c1a05-a742-4eb3-93ac-5dbfa2d29b73", actAs: ["HK::12200d91fa6b74de5c85025b7f87077a021ddecd7865995a44bc90998f7e39f93be8"], commandId: "63f80c3a-8d63-43b8-b0ff-7036265aab60", workflowId: null}}
2023-05-26 16:32:30,334 [canton-env-execution-context-23] INFO c.d.c.n.g.ApiRequestLogger:participant=participant1 tid:4bf8db355e2b1c477aec2d2054174493 - Request c.d.l.a.v.CommandService/SubmitAndWaitForTransaction by /10.194.168.140:6025: failed with FAILED_PRECONDITION/NO_DOMAIN_FOR_SUBMISSION(9,2e289c3c): No valid domain for submission found.
2023-05-26 16:32:31,985 [daml.index.db.connection.indexer connection adder] INFO c.d.p.s.b.c.InitHookDataSourceProxy - Init hook execution finished successfully, connection ready, context: {participant: "participant1"}
2023-05-26 16:32:36,396 [daml.index.db.connection.indexer connection adder] INFO c.d.p.s.b.c.InitHookDataSourceProxy - Init hook execution finished successfully, connection ready, context: {participant: "participant1"}
2023-05-26 16:32:40,512 [daml.index.db.connection.indexer connection adder] INFO c.d.p.s.b.c.InitHookDataSourceProxy - Init hook execution finished successfully, connection ready, context: {participant: "participant1"}
2023-05-26 16:32:42,184 [daml.index.db.connection.indexer connection adder] INFO c.d.p.s.b.c.InitHookDataSourceProxy - Init hook execution finished successfully, connection ready, context: {participant: "participant1"}
2023-05-26 16:32:42,899 [daml.index.db.connection.indexer connection adder] INFO c.d.p.s.b.c.InitHookDataSourceProxy - Init hook execution finished successfully, connection ready, context: {participant: "participant1"}
2023-05-26 16:32:58,216 [canton-env-execution-context-92] INFO c.d.c.p.p.ParticipantPruningScheduler:participant=participant1 tid:5f142498e891489fb750e14f8d689063 - With Done scheduled next 1h
2023-05-26 16:37:59,979 [canton-env-execution-context-92] INFO c.d.p.a.s.tracking.TrackerMap - Shutting down tracker for Key(Test,Set(HK::12200d91fa6b74de5c85025b7f87077a021ddecd7865995a44bc90998f7e39f93be8)) after inactivity of PT5M, context: {participant: "participant1"}
2023-05-26 16:43:11,308 [canton-env-execution-context-21] INFO c.d.c.s.c.t.GrpcSequencerSubscription:participant=participant1/domain=domain - The sequencer subscription has been terminated by the server.
2023-05-26 16:43:11,319 [canton-env-execution-context-92] INFO c.d.c.s.c.t.GrpcSubscriptionErrorRetryPolicy:participant=participant1/domain=domain - Trying to reconnect to give the sequencer the opportunity to become available again (after Connection terminated by the server.)

```

this is domain log

```haskell
2023-05-26 15:49:49,813 [canton-env-execution-context-21] INFO c.d.c.s.c.SequencedEventValidator$:domain-manager=domain/client=topology-manager tid:f965d1e63bd8b42b0d498fd07ffa6a0f - Validating event at 2023-05-26T07:49:49.732235Z optimistically with snapshot taken at 2023-05-26T07:49:49.452156Z
2023-05-26 15:49:49,821 [canton-env-execution-context-19] INFO c.d.c.s.c.SequencedEventValidator$:domain-manager=domain/client=topology-manager tid:0ea12d2a63e7e0e9435994f211b5dc70 - Validating event at 2023-05-26T07:49:49.732325Z optimistically with snapshot taken at 2023-05-26T07:49:49.452156Z
2023-05-26 15:49:49,835 [canton-env-execution-context-20] INFO c.d.c.t.p.TopologyTransactionProcessor:domain-manager=domain tid:0ea12d2a63e7e0e9435994f211b5dc70 - Storing topology transaction 1/1 Add VettedPackages(
  participant = participant1::12200d91fa6b...,
  packages = Seq(
    65576dce1566...,
    dd2089c0a172...,
    e05767016083...,
    cb0552debf21...,
    3f4deaf145a1...,
    86828b984346...,
    f20de1e4e37b...,
    76bf0fd12bd9...,
    38e6274601b2...,
    d58cf9939847...,
    40f452260bef...,
    e491352788e5...,
    6839a6d3d430...,
    518032f41fd0...,
    6ae9e4ca0eb9...,
    8f4233d7a107...,
    10e0333b52bb...,
    bfcd37bd6b84...,
    cc348d369011...,
    057eed1fd48c...,
    6df2d1fd8ea9...,
    d14e08374fc7...,
    c1f1f0055879...,
    6c2c0667393c...,
    e22bce619ae2...,
    e4cc67c3264e...,
    8a7806365bbd...,
    97b883cd8a2b...,
    5921708ce82f...,
    733e38d36a27...,
    99a2705ed38c...,
    5f5c8174d471...,
    23dbea7b83df...,
    68e258aa1d4b...
  )
) with ts=EffectiveTime(2023-05-26T07:49:49.982325Z) (epsilon=250 ms)
2023-05-26 16:32:53,024 [canton-env-execution-context-85] INFO c.d.c.s.c.t.GrpcSequencerSubscription:domain-manager=domain/client=topology-manager - The sequencer subscription has been terminated by the server.
2023-05-26 16:32:53,040 [canton-env-execution-context-55] INFO c.d.c.s.c.t.GrpcSubscriptionErrorRetryPolicy:domain-manager=domain/client=topology-manager - Trying to reconnect to give the sequencer the opportunity to become available again (after Connection terminated by the server.)

```

---

<div class="post-metadata">

**Author:** ![bernhard](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/bernhard/32/356_2.png) [@bernhard](https://forum.canton.network/u/bernhard)\
**Post date:** [May 26, 2023, 3:24pm UTC](https://forum.canton.network/t/can-not-use-json-api-protocol-version-error/6595/2 "2023-05-26T15:24:52Z")

</div>

Hi @skylorna , your sync domain is running protocol version 3 or earlier, but your package is compiled to Daml-LF 1.15 which was only introduced in protocol version 4.

If you are not using any language features like Daml Interfaces that were only introduced in Daml-LF 1.14, you can solve this issue by compiling to Daml-LF 1.14. Just add this to your daml.yaml file:

```haskell
build-options:
  - --target=1.14

```

If you are using new language features, you need to upgrade your protocol version following [this guide](https://docs.daml.com/canton/usermanual/upgrading.html#change-the-canton-protocol-version).

---

<div class="post-metadata">

**Author:** ![skylorna](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/skylorna/32/6986_2.png) [@skylorna](https://forum.canton.network/u/skylorna)\
**Post date:** [May 29, 2023, 3:02am UTC](https://forum.canton.network/t/can-not-use-json-api-protocol-version-error/6595/3 "2023-05-29T03:02:09Z")

</div>

Thank you, I can work by commenting out the sentence of protocol-version in the configuration file

 ![image](https://canada1.discourse-cdn.com/flex028/uploads/daml/original/2X/2/27e9adc1010aa6f6e68bc5e12c7b231e15148461.png)
