Error codes

We are currently in the process of annotating Canton log error messages with error codes of the form (CNyyyyy-x):

  • yyyyy denotes a 5-digit number that uniquely identifies an error type (e.g. DomainDisconnected).

  • x indicates whether the error is recoverable or not. It roughly goes up in severity from 1 to 5 where 1 indicates a retry-able error and 5 an unrecoverable error. For more details see the section on recoverability.

Additionally, each error code will also contain the following information in it’s context (given in the same log message the error code occurs in via ‘context=…’):

  • location=<origin-file>:<line-number>: <origin-file> and <line-number> denote in which file and line an error originated from, to identify the exact instance of a particular error.

Recoverability classification

For the error code (CNyyyyy-x), x may take on the following values:

  • 1: The error may disappear by retrying the operation that caused the error. E.g. due to high network traffic, a request timed out.

  • 2: An error occurred that can be resolved by changing settings on your side. E.g. you attempted to start Canton with invalid configuration files.

  • 3: The system may automatically recover from the error. Errors of this type generally take the form of ‘a previously true condition is now false’. E.g. a connection to a domain may temporarily have been lost but the system will automatically attempt to reestablish it. Note: Canton will also log an INFO message, using the same id, once the condition that caused the error is true again.

  • 4: An error occurred that requires action from another party to be resolved. E.g. a domain refused a connection because you are not authorized by the domain provider to connect to that domain.

  • 5: A serious, likely unrecoverable, error has occurred. E.g. the database is corrupted.

List of error codes

1. ConfigErrors

NoConfigFiles - CN10000-2

Explanation: No configuration files were given to Canton when attempting to start it
Conveyance: Config errors are logged and output to stdout if starting Canton with a given configuration fails
Resolution: Specify configuration files via '-c, --config <file1>,<file2>,...'
Scaladoc
GenericConfigError - CN10001-2

Conveyance: Config errors are logged and output to stdout if starting Canton with a given configuration fails
Scaladoc
CannotReadFilesError - CN10002-2

Conveyance: Config errors are logged and output to stdout if starting Canton with a given configuration fails
Resolution: This error is usually thrown when Canton can't find a given configuration file. Make sure that the path and name of all configuration files is correctly specified.
Scaladoc
CannotParseFilesError - CN10003-2

Explanation: This error is usually thrown because a config file doesn't contain configs in valid HOCON format. The most common cause of an invalid HOCON format is a forgotten bracket.
Conveyance: Config errors are logged and output to stdout if starting Canton with a given configuration fails
Resolution: Make sure that all files are in valid HOCON format.
Scaladoc
SubstitutionError - CN10004-2

Conveyance: Config errors are logged and output to stdout if starting Canton with a given configuration fails
Resolution: A common cause of this error is attempting to use an environment variable that isn't defined within a config-file.
Scaladoc
ValidationError - CN10005-2

Conveyance: Config errors are logged and output to stdout if starting Canton with a given configuration fails
Scaladoc

2. CommandErrors

CommandInternalError - CN10011-0

Conveyance: These errors are shown as errors on the console.
Scaladoc
ConsoleTimeout - CN10014-0

Conveyance: These errors are shown as errors on the console.
Scaladoc
NodeNotStarted - CN10015-0

Conveyance: These errors are shown as errors on the console.
Scaladoc

3. ParticipantErrorGroup

3.1. SyncServiceError

SyncServiceUnknownDomain - CN10053-2

Explanation: This error results if a domain connectivity command is referring to a domain alias that has not been registered.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Scaladoc
SyncServiceAlreadyAdded - CN10054-5

Explanation: This error results on an attempt to register a new domain under an alias already in use.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Scaladoc
SyncServiceInternalError - CN10055-0

Explanation: This error indicates an internal issue.
Conveyance: Returned to the user as GRPC status runtime exception with code INTERNAL
Resolution: Please contact support and provide the failure reason.
Scaladoc

3.1.1. DomainRegistryError

DomainRegistryInternalError - CN10043-0

Explanation: This error indicates that there has been an internal error noticed by Canton.
Conveyance: Returned to the user as GRPC status runtime exception with code INTERNAL
Resolution: Contact support and provide the failure reason.
Scaladoc

3.1.1.1. ConnectionErrors

DomainIsNotAvailable - CN10031-0

Explanation: This error results if the GRPC connection to the domain service fails with GRPC status UNAVAILABLE.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Check your connection settings and ensure that the domain can really be reached.
Scaladoc
ParticipantIsNotActive - CN10032-4

Explanation: This error indicates that the connecting participant has either not yet been activated by the domain operator. If the participant was previously successfully connected to the domain, then this error indicates that the domain operator has deactivated the participant.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Contact the domain operator and inquire the permissions your participant node has on the given domain.
Scaladoc
FailedToConnectToSequencer - CN10033-2

Explanation: This error indicates that the participant failed to connect to the sequencer.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Inspect the provided reason.
Scaladoc
GrpcFailure - CN10034-0

Explanation: This error indicates that the participant failed to connect due to a general GRPC error.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Inspect the provided reason and contact support.
Scaladoc

3.1.1.2. ConfigurationErrors

DomainMessageSizeExceedsParticipantSettings - CN10035-2

Explanation: This error indicates that the participant is trying to connect to a domain that might send data which exceed the locally configured max settings.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Reconfigure the canton.participants.$participant.max-inbound-message-size setting and restart.
Scaladoc
InvalidDomainConnections - CN10036-2

Explanation: This error indicates there is a validation error with the configured connections for the domain
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Scaladoc
IncompatibleUniqueContractKeysMode - CN10037-0

Explanation: This error indicates that the domain this participant is trying to connect to is a domain where unique contract keys are supported, while this participant is already connected to other domains. Multiple domains and unique contract keys are mutually exclusive features.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Use isolated participants for domains that require unique keys.
Scaladoc
DomainParametersChanged - CN10038-4

Explanation: Error indicating that the domain parameters have been changed, while this isn't supported yet.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Scaladoc
CanNotIssueDomainTrustCertificate - CN10200-0

Explanation: This error indicates that the participant can not issue a domain trust certificate. Such a certificate is necessary to become active on a domain. Therefore, it must be present in the authorized store of the participant topology manager.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Manually upload a valid domain trust certificate for the given domain or upload the necessary certificates such that participant can issue such certificates automatically.
Scaladoc

3.1.1.3. HandshakeErrors

DomainCryptoHandshakeFailed - CN10039-2

Explanation: This error indicates that the domain is using crypto settings which are either not supported or not enabled on this participant.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Consult the error message and adjust the supported crypto schemes of this participant.
Scaladoc
ServiceAgreementAcceptanceFailed - CN10040-2

Explanation: This error indicates that the domain requires the participant to accept a service agreement before connecting to it.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Use the commands $participant.domains.get_agreement and $participant.domains.accept_agreement to accept the agreement.
Scaladoc
HandshakeFailed - CN10041-0

Explanation: This error indicates that the participant to domain handshake has failed.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Inspect the provided reason for more details and contact support.
Scaladoc
DomainIdMismatch - CN10042-0

Explanation: This error indicates that the domain-id does not match the one that the participant expects. If this error happens on a first connect, then the domain id defined in the domain connection settings does not match the remote domain. If this happens on a reconnect, then the remote domain has been reset for some reason.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Carefully verify the connection settings.
Scaladoc

3.2. TransactionErrorGroup

3.2.1. SubmissionErrors

MalformedRequest - CN10044-0

Explanation: This error has not yet been properly categorised into sub-error codes.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Scaladoc
DomainBackpressure - CN10045-1

Explanation: This error occurs when the sequencer refuses to accept a command due to backpressure.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: Wait a bit and retry, preferably with some backoff factor.
Scaladoc
SubmissionDuringShutdown - CN10046-1

Explanation: This error occurs when a command is submitted while the system is performing a shutdown.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: Assuming that the participant will restart or failover eventually, retry in a couple of seconds.
Scaladoc
SequencerRequest - CN10047-0

Explanation: This error occurs when the command cannot be sent to the domain.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Scaladoc
SequencerDeliver - CN10048-0

Explanation: This error occurs when the domain refused to sequence the given message.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Scaladoc
TimeoutError - CN10049-1

Explanation: This error occurs when the transaction was not sequenced within the pre-defined max-sequencing time and has therefore timed out. The max-sequencing time is derived from the transaction's ledger time via the ledger time model skews.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: Resubmit if the delay is caused by high load. If the command requires substantial processing on the participant, specify a higher minimum ledger time with the command submission so that a higher max sequencing time is derived.
Scaladoc
PackageNotVettedByRecipients - CN10091-2

Explanation: This error occurs if a transaction was submitted referring to a package that a receiving participant has not vetted. Any transaction view can only refer to packages that have explicitly been approved by the receiving participants.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(FAILED_PRECONDITION,<error-code> ...)
Resolution: Ensure that the receiving participant uploads and vets the respective package.
Scaladoc
ParticipantBackpressure - CN18103-1

Explanation: This error occurs when the participant rejects a command due to excessive load. Load can be caused as follows: 1. when commands are submitted to the participant through its ledger api, 2. when the participant receives requests from other participants through a connected domain.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: Wait a bit and retry, preferably with some backoff factor. If possible, ask other participants to send fewer requests; the domain operator can enforce this by imposing a rate limit.
Scaladoc
SubmissionAlreadyInFlight - CN20001-1

Explanation: This error occurs if another command submission with the same change ID (application ID, command ID, actAs) is already being processed.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: Listen to the command completion stream until a completion for the in-flight command submission is published. Alternatively, resubmit the command after a while. If the in-flight submission has finished successfully by then, this will return more detailed information about the earlier one via the deduplication guarantee. If the in-flight submission has failed by then, the resubmission will attempt to record the new transaction on the ledger.
Scaladoc
TimeoutErrorSync - CN99999-1

Explanation: This error occurs when the transaction was not sequenced within the pre-defined max-sequencing time and has therefore timed out. The max-sequencing time is derived from the transaction's ledger time via the ledger time model skews.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: Resubmit if the delay is caused by high load. If the command requires substantial processing on the participant, specify a higher minimum ledger time with the command submission so that a higher max sequencing time is derived.
Scaladoc

3.2.2. SyncServiceInjectionError

PassiveReplica - CN10050-1

Explanation: This error results if a command is submitted to the passive replica.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(PERMISSION_DENIED,<error-code> ...)
Resolution: Send the command to the active replica.
Scaladoc
NotConnectedToAnyDomain - CN10051-2

Explanation: This errors results if a command is submitted to a participant that is not connected to any domain.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(PERMISSION_DENIED,<error-code> ...)
Resolution: Connect your participant to the domain where the given parties are hosted.
Scaladoc
InjectionFailure - CN10052-0

Explanation: This errors results if an internal error results in an exception.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(PERMISSION_DENIED,<error-code> ...)
Resolution: Contact support.
Scaladoc

3.2.3. TransactionRoutingError

RoutingInternalError - CN10065-0

Explanation: This error indicates an internal error in the Canton domain router.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: Please contact support.
Scaladoc

3.2.3.1. ConfigurationErrors

MultiDomainSupportNotEnabled - CN10056-2

Explanation: This error indicates that a transaction has been submitted that requires multi-domain support. Multi-domain support is a preview feature that needs to be enabled explicitly by configuration.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(PERMISSION_DENIED,<error-code> ...)
Resolution: Set canton.parameters.enable-preview-features = yes
Scaladoc
SubmissionDomainNotReady - CN10057-2

Explanation: This error indicates that the transaction should be submitted to a domain which is not connected or not configured.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(PERMISSION_DENIED,<error-code> ...)
Resolution: Ensure that the domain is correctly connected.
Scaladoc

3.2.3.2. MalformedInputErrors

InvalidSubmitter - CN10058-5

Explanation: The party defined as a submitter can not be parsed into a valid Canton party.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(PERMISSION_DENIED,<error-code> ...)
Resolution: Check that you only use correctly setup party names in your application.
Scaladoc
InvalidDomainAlias - CN11017-5

Explanation: The WorkflowID defined in the transaction metadata is not a valid domain alias.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(PERMISSION_DENIED,<error-code> ...)
Resolution: Check that the workflow ID (if specified) corresponds to a valid domain alias. A typical rejection reason is a too-long domain alias.
Scaladoc

3.2.3.3. TopologyErrors

NoDomainOnWhichAllSubmittersCanSubmit - CN10059-2

Explanation: This error indicates that a transaction has been sent where the system can not find any active " + "domain on which this participant can submit in the name of the given set of submitters.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(PERMISSION_DENIED,<error-code> ...)
Resolution: Ensure that you are connected to a domain where this participant has submission rights. Check that you are actually connected to the domains you expect to be connected and check that your participant node has the submission permission for each submitting party.
Scaladoc
UnknownInformees - CN10060-2

Explanation: This error indicates that the transaction is referring to some informees that are not known on any connected domain.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: Check the list of submitted informees and check if your participant is connected to the domains you are expecting it to be.
Scaladoc
InformeesNotActive - CN10061-2

Explanation: This error indicates that the informees are known, but there is no connected domain on which all the informees are hosted.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: Ensure that there is such a domain, as Canton requires a domain where all informees are present.
Scaladoc
NoCommonDomain - CN10062-2

Explanation: This error indicates that there is no common domain to which all submitters can submit and all informees are connected.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: Check that your participant node is connected to all domains you expect and check that the parties are hosted on these domains as you expect them to be.
Scaladoc
SubmitterAlwaysStakeholder - CN10063-2

Explanation: This error indicates that the transaction requires contract transfers for which the submitter must be a stakeholder.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: Check that your participant node is connected to all domains you expect and check that the parties are hosted on these domains as you expect them to be.
Scaladoc
NotConnectedToAllContractDomains - CN10064-2

Explanation: This error indicates that the transaction is referring to contracts on domains to which this participant is currently not connected.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: Check the status of your domain connections.
Scaladoc

3.2.4. LocalReject

3.2.4.1. ConsistencyRejections

LockedContracts - CN10066-1

Explanation: The transaction is referring to locked contracts which are in the process of being created, transferred, or archived by another transaction. If the other transaction fails, this transaction could be successfully retried.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: Retry the transaction
Scaladoc
LockedKeys - CN10067-1

Explanation: The transaction is referring to locked keys which are in the process of being modified by another transaction.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: Retry the transaction
Scaladoc
InactiveContracts - CN10068-5

Explanation: The transaction is referring to contracts that have either been previously archived, transferred to another domain, or do not exist.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: Inspect your contract state and try a different transaction.
Scaladoc
DuplicateKey - CN10069-0

Explanation: If the participant is connected to a domain with unique contract key support, this error will indicate that a transaction would create a unique key which already exists.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: It depends on your use case and application whether and when retrying makes sense or not.
Scaladoc
CreatesExistingContracts - CN10070-0

Explanation: This error indicates that the transaction would create already existing contracts.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: This error indicates either faulty or malicious behaviour.
Scaladoc

3.2.4.2. TimeRejects

LedgerTime - CN10071-2

Explanation: This error is thrown if the ledger time and the record time differ more than permitted. This can happen in an overloaded system due to high latencies or for transactions with long interpretation times.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: For long-running transactions, specify a ledger time with the command submission. For short-running transactions, simply retry.
Scaladoc
SubmissionTime - CN10072-2

Explanation: This error is thrown if the submission time and the record time differ more than permitted. This can happen in an overloaded system due to high latencies or for transactions with long interpretation times.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: For long-running transactions, adjust the ledger time bounds used with the command submission. For short-running transactions, simply retry.
Scaladoc
LocalTimeout - CN10073-1

Explanation: This rejection is sent if the participant locally determined a timeout.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: Resubmit your transaction.
Scaladoc

3.2.4.3. MalformedRejects

Payloads - CN10074-5

Explanation: This rejection is made by a participant if a view of the transaction is malformed.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: This indicates either malicious or faulty behaviour.
Scaladoc
ModelConformance - CN10075-5

Explanation: This rejection is made by a participant if a transaction fails a model conformance check.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: This indicates either malicious or faulty behaviour.
Scaladoc
MultipleConfirmationPolicies - CN10076-5

Explanation: This rejection is made by a participant if a transaction uses different confirmation policies per view.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: This indicates either malicious or faulty behaviour.
Scaladoc
BadRootHashMessages - CN10077-1

Explanation: This rejection is made by a participant if a transaction does not contain valid root hash messages.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: This indicates a race condition due to a in-flight topology change, or malicious or faulty behaviour.
Scaladoc
EmptyRejection - CN10078-5

Explanation: This rejection is emitted by a participant if it receives an aggregated reject without any reason.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: This indicates either malicious or faulty mediator.
Scaladoc

3.2.4.4. TransferOutRejects

ActivenessCheckFailed - CN10079-5

Explanation: Activeness check failed for transfer out submission.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Scaladoc

3.2.4.5. TransferInRejects

ContractAlreadyArchived - CN10080-5

Explanation: This rejection is emitted by a participant if a transfer would be invoked on an already archived contract.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Scaladoc
ContractAlreadyActive - CN10081-5

Explanation: This rejection is emitted by a participant if a transfer-in has already been made by another entity.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Scaladoc
ContractIsLocked - CN10082-5

Explanation: This rejection is emitted by a participant if a transfer-in is referring to an already locked contract.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Scaladoc
AlreadyCompleted - CN10083-5

Explanation: This rejection is emitted by a participant if a transfer-in has already been completed.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Scaladoc

3.2.5. MediatorReject

Timeout - CN10086-1

Explanation: This rejection indicates that the transaction has been rejected by the mediator as it didn't receive enough confirmations within the confirmation timeout window.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
Resolution: Check that all involved participants are available and not overloaded.
Scaladoc

3.2.5.1. Topology

InformeesNotHostedOnActiveParticipants - CN10084-0

Explanation: The transaction is referring to informees that are not hosted on any active participant on this domain.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: This error can happen either if the transaction is racing with a topology state change, or due to malicious or faulty behaviour.
Scaladoc
InvalidRootHashMessages - CN10085-1

Explanation: This rejection indicates that a submitter has sent a view with invalid root hash messages.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: This error can happen either if the transaction is racing with a topology state change, or due to malicious or faulty behaviour.
Scaladoc

3.2.5.2. MaliciousSubmitter

ViewThresholdBelowMinimumThreshold - CN10087-0

Explanation: This rejection indicates that a submitter has sent a manipulated view.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: Investigate whether the submitter is faulty or malicious.
Scaladoc
NotEnoughConfirmingParties - CN10088-0

Explanation: This rejection indicates that a submitter has sent a manipulated view.
Conveyance: This error is reported together with the error code as GrpcRejectionReason(INVALID_ARGUMENT,<error-code> ...)
Resolution: Investigate whether the submitter is faulty or malicious.
Scaladoc

3.2.6. LedgerApiErrors

3.2.6.1. InterpreterErrors

InternalError - CN10093-5

Explanation: This error occurs if there was an unexpected error within the interpreter
Conveyance: This error is reported as GRPC status error INTERNAL
Resolution: Contact support.
Scaladoc
ValidationError - CN11001-5

Explanation: This error occurs on malformed commands.
Conveyance: This error is reported as GRPC status error INVALID_ARGUMENT
Resolution: This error indicates an issue in your application.
Scaladoc
MissingPackageError - CN11002-2

Explanation: This error occurs if the Daml transaction is referring to a package which is not known to the participant.
Conveyance: This error is reported as GRPC status error FAILED_PRECONDITION
Resolution: Upload the necessary Dars to the participant node.
Scaladoc
AuthorizationError - CN11004-0

Explanation: This error occurs if the Daml transaction fails due to an authorization error. An authorization means that the Daml transaction computed a different set of required submitters than you have provided during the submission as `actAs` parties.
Conveyance: This error is reported as GRPC status error INVALID_ARGUMENT
Resolution: This error type occurs if there is an application error.
Scaladoc
InterpretationError - CN11008-5

Explanation: This error occurs if the Daml transaction failed during interpretation.
Conveyance: This error is reported as GRPC status error INVALID_ARGUMENT
Resolution: This error type occurs if there is an application error.
Scaladoc

3.2.6.1.1. LookupErrors

ChoiceNotFound - CN11005-5

Explanation: This error occurs if an exercise command is referring to an unknown choice.
Conveyance: This error is reported as GRPC status error INVALID_ARGUMENT
Resolution: This error suggests indicates an application error.
Scaladoc
ContractKeyNotFound - CN11006-0

Explanation: This error occurs if the Damle interpreter can not resolve a contract key to an active contract. This can be caused by either the contract key not being known to the participant, or not being known to the submitting parties or the contract representing the key has already being archived.
Conveyance: This error is reported as GRPC status error INVALID_ARGUMENT
Resolution: This error type occurs if there is contention on a contract.
Scaladoc
ContractNotFound - CN11007-5

Explanation: This error occurs if the Damle interpreter can not find a referenced contract. This can be caused by either the contract not being known to the participant, or not being known to the submitting parties or already being archived.
Conveyance: This error is reported as GRPC status error ABORTED
Resolution: This error type occurs if there is contention on a contract.
Scaladoc

3.2.6.2. CommandPreparation

FailedToDetermineLedgerTime - CN11009-1

Explanation: This error occurs if the participant fails to determine the max ledger time of the used contracts. Most likely, this means that one of the contracts is not active anymore which can happen under contention. However, it can also happen with contract keys.
Conveyance: This error is reported as GRPC status error ABORTED
Resolution: Retry the transaction
Scaladoc
DuplicateCommand - CN11010-5

Explanation: Command deduplication
Conveyance: This error is reported as GRPC status error ALREADY_EXISTS
Resolution: Celebrate, as your command has already been delivered
Scaladoc

3.2.6.3. CommandValidation

InvalidField - CN11011-5

Explanation: This error is emitted, when a submitted ledger Api command contained a field value that could not be properly understood
Conveyance: This error is reported as GRPC status error INVALID_ARGUMENT
Resolution: Inspect the reason given and correct your application.
Scaladoc
InvalidArgument - CN11012-5

Explanation: This error is emitted, when a submitted ledger Api command contained an invalid argument.
Conveyance: This error is reported as GRPC status error INVALID_ARGUMENT
Resolution: Inspect the reason given and correct your application.
Scaladoc
MissingField - CN11013-5

Explanation: This error is emitted, when a submitted ledger Api command could not be successfully deserialized due to mandatory fields not being set.
Conveyance: This error is reported as GRPC status error INVALID_ARGUMENT
Resolution: Inspect the reason given and correct your application.
Scaladoc
LedgerIdMismatch - CN11014-5

Explanation: Every ledger Api command contains a ledger-id which is verifying against the running ledger. This error indicates that the provided ledger-id does not match the expected one.
Conveyance: This error is reported as GRPC status error NOT_FOUND
Resolution: Ensure that your application is correctly configured to use the correct ledger.
Scaladoc

3.2.6.4. AuthorizationChecks

PermissionDenied - CN11015-5

Explanation: This rejection is given if the supplied JWT token is not sufficient for the intended command. The exact reason is logged on the participant, but not given to the user for security reasons.
Conveyance: This error is reported as GRPC status error PERMISSION_DENIED
Resolution: Inspect your command and your token, or ask your participant operator for an explanation why this command failed.
Scaladoc
Unauthenticated - CN11016-5

Explanation: This rejection is given if the submitted command does not contain a JWT token on a participant enforcing JWT authentication.
Conveyance: This error is reported as GRPC status error UNAUTHENTICATED
Resolution: Ask your participant operator to provide you with an appropriate JWT token.
Scaladoc

3.3. IdentityManagerError

InternalError - CN18000-0

Explanation: This error indicates that there was an internal error within the topology manager.
Conveyance: Returned to the user as GRPC status runtime exception with code INTERNAL
Resolution: Inspect error message for details.
Scaladoc
SecretKeyNotInStore - CN18001-2

Explanation: This error indicates that the secret key with the respective fingerprint can not be found.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Ensure you only use fingerprints of secret keys stored in your secret key store.
Scaladoc
PublicKeyNotInStore - CN18002-2

Explanation: This error indicates that a command contained a fingerprint referring to a public key not being present in the public key store.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Upload the public key to the public key store using $node.keys.public.load(.) before retrying.
Scaladoc
InvalidSignatureError - CN18003-5

Explanation: This error indicates that the uploaded signed transaction contained an invalid signature.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Ensure that the transaction is valid and uses a crypto version understood by this participant.
Scaladoc
DuplicateTransaction - CN18005-5

Explanation: This error indicates that a transaction has already been added previously.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Nothing to do as the transaction is already registered. Note however that a revocation is " + final. If you want to re-enable a statement, you need to re-issue an new transaction.
Scaladoc
MappingAlreadyExists - CN18007-2

Explanation: This error indicates that a transaction would create a state that already exists and has been authorized with the same key.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Your intended change is already in effect.
Scaladoc
NoAppropriateSigningKeyInStore - CN18008-2

Explanation: This error results if the topology manager did not find a secret key in its store to authorize a certain topology transaction.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Inspect your topology transaction and your secret key store and check that you have the appropriate certificates and keys to issue the desired topology transaction. If the list of candidates is empty, then you are missing the certificates.
Scaladoc
CertificateGenerationError - CN18009-0

Explanation: This error indicates that the desired certificate could not be created.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Inspect the underlying error for details.
Scaladoc
UnauthorizedTransaction - CN18010-2

Explanation: This error indicates that the attempt to add a transaction was rejected, as the signing key is not authorized within the current state.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Inspect the topology state and ensure that valid namespace or identifier delegations of the signing key exist or upload them before adding this transaction.
Scaladoc
NoCorrespondingActiveTxToRevoke - CN18011-2

Explanation: This error indicates that the attempt to add a removal transaction was rejected, as the mapping / element affecting the removal did not exist.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Inspect the topology state and ensure the mapping and the element id of the active transaction you are trying to revoke matches your revocation arguments.
Scaladoc
RemovingLastKeyMustBeForced - CN18012-2

Explanation: This error indicates that the attempted key removal would remove the last valid key of the given entity, making the node unusuable.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Add the `force = true` flag to your command if you are really sure what you are doing.
Scaladoc

3.3.1. DomainIdentityManagerError

FailedToAddParticipant - CN18100-0

Explanation: This error indicates an external issue with the participant addition hook.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Consult the error details.
Scaladoc
ParticipantNotInitialized - CN18101-2

Explanation: This error is returned if a domain topology manager attempts to activate a participant without having previously registered the necessary keys.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Register the necessary keys and try again.
Scaladoc
AlienDomainEntities - CN18102-5

Explanation: This error is returned if a transaction attempts to add keys for alien domain entities to this domain topology manager.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Use a participant topology manager if you want to manage foreign domain keys
Scaladoc
WrongDomain - CN18105-5

Explanation: This error is returned if a transaction restricted to a domain should be added to another domain.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Recreate the content of the transaction with a correct domain identifier.
Scaladoc

3.3.2. ParticipantIdentityManagerError

CannotVetDueToMissingPackages - CN19300-2

Explanation: This error indicates that a package vetting command failed due to packages not existing locally. This can be due to either the packages not being present or their dependencies being missing. When vetting a package, the package must exist on the participant, as otherwise the participant will not be able to process a transaction relying on a particular package.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Ensure that the package exists locally before issuing such a transaction.
Scaladoc
DangerousVettingCommandsRequireForce - CN19301-5

Explanation: This error indicates that a dangerous package vetting command was rejected. This is the case if a vetting command, if not run correctly, could potentially lead to a ledger fork. The vetting authorization checks the participant for the presence of the given set of packages (including their dependencies) and allows only to vet for the given participant id. In rare cases where a more centralised topology manager is used, this behaviour can be overridden with force. However, if a package is vetted but not present on the participant, the participant will refuse to process any transaction of the given domain until the problematic package has been uploaded.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Set force=true if you really know what you are doing.
Scaladoc
DependenciesNotVetted - CN19302-2

Explanation: This error indicates a vetting request failed due to dependencies not being vetted. On every vetting request, the set supplied packages is analysed for dependencies. The system requires that not only the main packages are vetted explicitly but also all dependencies. This is necessary as not all participants are required to have the same packages installed and therefore not every participant can resolve the dependencies implicitly.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Vet the dependencies first and then repeat your attempt.
Scaladoc
UninitializedParticipant - CN19303-2

Explanation: This error indicates that a vetting request was attempted on a participant that is not yet initialised.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Initialise the participant and retry.
Scaladoc

3.4. PackageServiceError

InternalError - CN18406-0

Explanation: This error indicates an internal issue within the package service.
Conveyance: Returned to the user as GRPC status runtime exception with code INTERNAL
Resolution: Inspect the error message and contact support.
Scaladoc
ValidationError - CN18410-5

Explanation: This error indicates that the validation of the uploaded dar failed.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Inspect the error message and contact support.
Scaladoc
AllowedLanguageVersions - CN18412-5

Explanation: This error indicates that the uploaded dar is based on an unsupported language version.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Use a Dar compiled with a language version that this participant supports.
Scaladoc
SelfConsistency - CN18413-5

Explanation: This error indicates that the uploaded Dar is broken because it is missing internal dependencies.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Contact the supplier of the Dar.
Scaladoc

3.4.1. Reading

InvalidDarFileName - CN18400-5

Explanation: This error indicates that the supplied dar file name did not meet the requirements to be stored in the persistence store.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Inspect error message for details and change the file name accordingly
Scaladoc
InvalidDar - CN18401-5

Explanation: This error indicates that the supplied dar file was invalid.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Inspect the error message for details and contact support.
Scaladoc
InvalidZipEntry - CN18402-5

Explanation: This error indicates that the supplied zipped dar file was invalid.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Inspect the error message for details and contact support.
Scaladoc
InvalidLegacyDar - CN18403-5

Explanation: This error indicates that the supplied zipped dar is an unsupported legacy Dar.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Please use a more recent dar version.
Scaladoc
ZipBomb - CN18404-5

Explanation: This error indicates that the supplied zipped dar is regarded as zip-bomb.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Inspect the dar and contact support.
Scaladoc
ParseError - CN18405-5

Explanation: This error indicates that the content of the Dar file could not be parsed successfully.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: Inspect the error message and contact support.
Scaladoc

3.5. ParticipantReplicationServiceError

InternalError - CN19002-0

Conveyance: Returned to the user as GRPC status runtime exception with code INTERNAL
Scaladoc
UnsupportedConfig - CN19003-2

Conveyance: Returned to the user as GRPC status runtime exception with code INTERNAL
Scaladoc

3.6. AdminWorkflowServices

CanNotAutomaticallyVetAdminWorkflowPackage - CN19335-2

Explanation: This error indicates that the admin workflow package could not be vetted. The admin workflows is a set of packages that are pre-installed and can be used for administrative processes. The error can happen if the participant is initialised manually but is missing the appropriate signing keys or certificates in order to issue new topology transactions within the participants namespace. The admin workflows can not be used until the participant has vetted the package.
Conveyance: Returned to the user as GRPC status runtime exception with code ABORTED
Resolution: This error can be fixed by ensuring that an appropriate vetting transaction is issued in the name of this participant and imported into this participant node. If the corresponding certificates have been added after the participant startup, then this error can be fixed by either restarting the participant node, issuing the vetting transaction manually or re-uploading the Dar (leaving the vetAllPackages argument as true)
Scaladoc

3.7. Errors

InternalError - CN20000-0

Explanation: This error indicates that there was an internal error within the ACS commitment processing.
Resolution: Inspect error message for details.
Scaladoc

3.7.1. MismatchError

NoSharedContracts - CN19501-3

Explanation: This error indicates that a remote participant has sent a commitment over an ACS for a period, while this participant does not think that there is a shared contract state. This error occurs if a remote participant has manually changed contracts using repair, or due to byzantine behavior, or due to malfunction of the system. The consequence is that the ledger is forked, and some commands that should pass will not.
Resolution: Please contact the other participant in order to check the cause of the mismatch. Either repair the store of this participant or of the counterparty.
Scaladoc
CommitmentsMismatch - CN19503-3

Explanation: This error indicates that a remote participant has sent a commitment over an ACS for a period which does not match the local commitment. This error occurs if a remote participant has manually changed contracts using repair, or due to byzantine behavior, or due to malfunction of the system. The consequence is that the ledger is forked, and some commands that should pass will not.
Resolution: Please contact the other participant in order to check the cause of the mismatch. Either repair the store of this participant or of the counterparty.
Scaladoc

4. CloseReason

UnrecoverableError - CN10089-5

Conveyance: Logged on WARN level
Scaladoc
UnexpectedError - CN10090-0

Conveyance: Logged on WARN level
Scaladoc

5. ProtoDeserializationError

ProtoDeserializationFailure - CN19001-5

Explanation: This error indicates that an incoming administrative command could not be processed due to a malformed message.
Conveyance: Returned to the user as GRPC status runtime exception with code INVALID_ARGUMENT
Resolution: Inspect the error details and correct your application
Scaladoc