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

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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
Scaladoc
SyncServiceInternalError - CN10055-0

Explanation: This error indicates an internal issue.
Conveyance: Returned to the user as GRPC status runtime exception with Status Status{code=INTERNAL, description=null, cause=null}
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 Status Status{code=INTERNAL, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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

Conveyance: This error is reported together with the error code as GrpcRejectionReason(ABORTED,<error-code> ...)
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

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-0

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
AlreadyAssignedKeys - 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 usecase 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 INVALID_ARGUMENT
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 Status Status{code=INTERNAL, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=ABORTED, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=ABORTED, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=ABORTED, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
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 Status Status{code=ABORTED, description=null, cause=null}
Resolution: Recreate the content of the transaction with a correct domain identifier.
Scaladoc

3.4. ParticipantReplicationServiceError

InternalError - CN19002-0

Conveyance: Returned to the user as GRPC status runtime exception with Status Status{code=INTERNAL, description=null, cause=null}
Scaladoc
UnsupportedConfig - CN19003-4

Conveyance: Returned to the user as GRPC status runtime exception with Status Status{code=INTERNAL, description=null, cause=null}
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 Status Status{code=INVALID_ARGUMENT, description=null, cause=null}
Resolution: Inspect the error details and correct your application
Scaladoc