LOCAL VERDICT LEDGER TIME OUT OF BOUND Error in Daml Script
When running a Daml Script, I get the following error consistently at the same Daml create command submission:
Exception in thread "main" com.daml.lf.engine.script.ScriptF$FailedCmd: Command submit failed: ABORTED: LOCAL_VERDICT_LEDGER_TIME_OUT_OF_BOUND(2,34761e93): Rejected transaction as delta of the ledger time and the record time exceed the time tolerance ledgerTime=2023-02-10T08:44:34.919230Z, recordTime=2023-02-10T08:43:33.373653Z, maxDelta=1m
I understand from the documentation here that this is due to an overloaded network.
-
Assuming this particular command submission is a long-running transaction, how do I specify a ledger time with the command submission in Daml Script?
-
Assuming this particular command submission is a short-running transaction, how do I retry this transaction if it fails in Daml Script?
-
Will increasing the
maxDeltanot solve this issue? Is it not a recommended solution?
Is this the same parameter as Canton domain service’s ledger_time_record_time_tolerance ?
Can you please double-check that the clocks of the participant node and of the domain/sequencer nodes are synchronized (e.g. using NTP). Given that the ledger time (assigned by the participant) is running ahead of the record time (assigned by the sequencer), I don’t expect an overloaded system but a divergence of clocks.
The maxDelta is indeed controlled through the dynamic domain parameter ledgerTimeRecordTimeTolerance, you can change it via the dynamic domain parameters: Manage Domains — Daml SDK 2.5.3 documentation
Cheers, thank you @soren!