Transfer-factory api error

API call:

/api/validator/v0/scan-proxy/registry/transfer-instruction/v1/transfer-factory

Error returned:

{

“error”: “Failed to reach consensus from 9 scan nodes, requiring 5 matching responses.”

}

Hi, what could be causing this error?

1. Is there a network problem with Canton?

2. Is our Validater being restricted?

You could also run this script from the docs to check connectivity:

Okay, thank you, I will do more testing.

root@qukuai-cc-1f-1:~# (set -o pipefail
CURL='curl -fsS -m 5 --connect-timeout 5'
for url in $($CURL https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/scans | jq -r '.scans[].scans[].publicUrl'); do
  echo -n "$url: "
  $CURL "$url"/api/scan/version | jq -r '.version'
done)
curl: (22) The requested URL returned error: 403
root@qukuai-cc-1f-1:~# 
root@qukuai-cc-1f-1:~# 

Hey @externming

So… this is looking in error for scan proxy.

  • scan nodes can briefly disagree during round transitions or when some SVs are slightly behind on ledger state. This is the most common cause and usually self-resolves within a few minutes. Is this still going on???
  • the transfer-factory endpoint requires scan nodes to agree on the current AmuletRules and round state. If you’re holding a stale context from a previous API call and reusing it, nodes may have advanced past it.

you can try to fetch a fresh transfer factory context immediately before submitting rather than caching it.