# Potential issue with Canton Sychronizatoin

**URL:** <https://forum.canton.network/t/potential-issue-with-canton-sychronizatoin/4930>\
**Category:** App Development\
**Tags:** canton\
**Created:** [July 19, 2022, 10:23am UTC](https://forum.canton.network/t/potential-issue-with-canton-sychronizatoin/4930 "2022-07-19T10:23:48Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Judy\_Wu](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/judy_wu/32/3536_2.png) [@Judy\_Wu](https://forum.canton.network/u/Judy_Wu)\
**Post date:** [July 19, 2022, 10:23am UTC](https://forum.canton.network/t/potential-issue-with-canton-sychronizatoin/4930/1 "2022-07-19T10:23:48Z")

</div>

We have a simple Canton Setup shown as below  
simple.conf

```haskell
canton {
  participants {
    bankAParticipant {
      storage.type = memory
      admin-api.port = 5012
      ledger-api.port = 5011
      ledger-api.address = 0.0.0.0
    }
    bankBParticipant {
      storage.type = memory
      admin-api.port = 5022
      ledger-api.port = 5021
      ledger-api.address = 0.0.0.0
    }
    schedulerParticipant {
      storage.type = memory
      admin-api.port = 5032
      ledger-api.port = 5031
      ledger-api.address = 0.0.0.0
    }
    assemblerParticipant {
      storage.type = memory
      admin-api.port = 5042
      ledger-api.port = 5041
      ledger-api.address = 0.0.0.0
    }
  }
  domains {
    mydomain {
      storage.type = memory
      public-api.port = 5018
      admin-api.port = 5019
    }
  }
  // enable ledger_api commands for our getting started guide
  features.enable-testing-commands = yes
}

```

and  
simple.canton bootstrap

```haskell
// start all local instances defined in the configuration file
nodes.local start

// Connect participant1 to mydomain using the connect macro.
// The connect macro will inspect the domain configuration to find the correct URL and Port.
// The macro is convenient for local testing, but obviously doesn't work in a distributed setup.
bankAParticipant.domains.connect_local(mydomain)
bankBParticipant.domains.connect_local(mydomain)
schedulerParticipant.domains.connect_local(mydomain)
assemblerParticipant.domains.connect_local(mydomain)

```

We also allocated parties through daml script and upload the script in a distributed manner

```haskell
stagingTest = do
  bankA <- allocatePartyWithHintOn "bankA" (PartyIdHint "bankA") $ ParticipantName "bankAParticipant"
  bankB <- allocatePartyWithHintOn "bankB" (PartyIdHint "bankB") $ ParticipantName "bankBParticipant"
  scheduler <- allocatePartyWithHintOn "scheduler" (PartyIdHint "scheduler") $ ParticipantName "schedulerParticipant"
  assembler <- allocatePartyWithHintOn "assembler" (PartyIdHint "assembler") $ ParticipantName "assemblerParticipant"

```

all of the above works and created the parties on different participant as expected.

Yet, when we created a contract on participantBankA with bankA party as signatory and scheduler party as observer,  
canton does not seems to help us synced the contract into the acs of participantScheduler (which has schedulerParty on it).  
We have double checked that the scheduler party hash on the created contract observer (through canton console command ledger\_api\_acs) matched the scheduler party hash that we allocated on participantScheduler. However when we run canton console command to check the acs of participantScheduler the created contract is not there.

Any idea why we are not seeing the contract sync?

Thanks so much for any of the help in advance.  
it can just really be some noob level incorrect setup /or the way we are checking canton is incorrect.

---

<div class="post-metadata">

**Author:** ![cocreature](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/cocreature/32/36_2.png) [@cocreature](https://forum.canton.network/u/cocreature)\
**Post date:** [July 19, 2022, 10:27am UTC](https://forum.canton.network/t/potential-issue-with-canton-sychronizatoin/4930/2 "2022-07-19T10:27:57Z")

</div>

Have you waited for a bit? There is no guarantee that the contracts are available immediately on the other participants. In Daml Script, you can often query for the contract id in a loop until it ppears.

---

<div class="post-metadata">

**Author:** ![Judy\_Wu](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/judy_wu/32/3536_2.png) [@Judy\_Wu](https://forum.canton.network/u/Judy_Wu)\
**Post date:** [July 19, 2022, 10:31am UTC](https://forum.canton.network/t/potential-issue-with-canton-sychronizatoin/4930/3 "2022-07-19T10:31:38Z")

</div>

@cocreature we are using canton console to query manually and now several minutes has passed, the contract is still not there.

---

<div class="post-metadata">

**Author:** ![Judy\_Wu](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/judy_wu/32/3536_2.png) [@Judy\_Wu](https://forum.canton.network/u/Judy_Wu)\
**Post date:** [July 19, 2022, 10:43am UTC](https://forum.canton.network/t/potential-issue-with-canton-sychronizatoin/4930/4 "2022-07-19T10:43:12Z")

</div>

Thanks @cocreature for the offline help, turns out just some noob mistake using canton console for querying.
