object ErrorCategory extends Serializable

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ErrorCategory
  2. Serializable
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. abstract class ErrorCategoryImpl extends AnyRef
  2. final case class GenericErrorCategory(grpcCode: Option[Code], logLevel: Level, retryable: Option[ErrorCategoryRetry], securitySensitive: Boolean, asInt: Int, rank: Int) extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    Generic error category class meant to be used as a data container for information deserialized from gRPC statuses (see com.daml.error.utils.DeserializedCantonError).

    Generic error category class meant to be used as a data container for information deserialized from gRPC statuses (see com.daml.error.utils.DeserializedCantonError).

    Note: Do NOT use this class for adding error category information to error code instances but instead re-use existing ones or define new ones (see ErrorCategory.all)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val all: Seq[ErrorCategory]
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. def fromInt(ii: Int): Option[ErrorCategory]
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  16. implicit val orderingErrorType: Ordering[ErrorCategory]
  17. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  22. case object AuthInterceptorInvalidAuthenticationCredentials extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    Client is not authenticated properly

    Client is not authenticated properly

    Annotations
    @Description(description = """The request does not have valid authentication credentials for the operation. This error is exposed on the API with grpc-status UNAUTHENTICATED without any details for security reasons""") @RetryStrategy(retryStrategy = """Retry after application operator intervention.""") @Resolution(resolution = """Expectation: this is an application bug, application misconfiguration or ledger-level
    |misconfiguration. Resolution requires application and/or ledger operator intervention."""
    )
  23. case object BackgroundProcessDegradationWarning extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    Background daemon notifying about observed degradation

    Background daemon notifying about observed degradation

    Annotations
    @Description(description = """This error category is used internally to signal to the system operator an internal degradation.""") @RetryStrategy(retryStrategy = """Not an API error, therefore not retryable.""") @Resolution(resolution = """Inspect details of the specific error for more information.""")
  24. case object ContentionOnSharedResources extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    Failure due to contention on some resources

    Failure due to contention on some resources

    Annotations
    @Description(description = """The request could not be processed due to shared processing resources
    |(e.g. locks or rate limits that replenish quickly) being occupied.
    |If the resource is known (i.e. locked contract), it will be included as a resource info. (Not known
    |resource contentions are e.g. overloaded networks where we just observe timeouts, but can’t pin-point the cause)."""
    )
    @RetryStrategy(retryStrategy = "Retry quickly (indefinitely or limited), but do not retry in load balancer.") @Resolution(resolution = """Expectation: this is processing-flow level contention that should be handled by
    |retrying the request with appropriate backoff."""
    )
  25. case object DeadlineExceededRequestStateUnknown extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    Request completion not observed within a pre-defined window

    Request completion not observed within a pre-defined window

    Annotations
    @Description(description = """The request might not have been processed, as its deadline expired before its
    |completion was signalled. Note that for requests that change the state of the
    |system, this error may be returned even if the request has completed successfully.
    |Note that known and well-defined timeouts are signalled as
    |[[ContentionOnSharedResources]], while this category indicates that the
    |state of the request is unknown."""
    )
    @RetryStrategy(retryStrategy = "Retry for a limited number of times with deduplication.") @Resolution(resolution = """Expectation: the deadline might have been exceeded due to transient resource
    |congestion or due to a timeout in the request processing pipeline being too low.
    |The transient errors might be solved by the application retrying.
    |The non-transient errors will require operator intervention to change the timeouts."""
    )
  26. case object InsufficientPermission extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    Client does not have appropriate permissions

    Client does not have appropriate permissions

    Annotations
    @Description(description = """The caller does not have permission to execute the specified operation. This error is exposed on the API with grpc-status PERMISSION_DENIED without any details for security reasons""") @RetryStrategy(retryStrategy = """Retry after application operator intervention.""") @Resolution(resolution = """Expectation: this is an application bug or application misconfiguration. Resolution requires
    |application operator intervention."""
    )
  27. case object InternalUnsupportedOperation extends ErrorCategoryImpl with ErrorCategory with Product with Serializable
    Annotations
    @Description(description = """This error category is used to signal that an unimplemented code-path has been triggered by a client or participant operator request. This error is exposed on the API with grpc-status UNIMPLEMENTED without any details for security reasons""") @RetryStrategy(retryStrategy = """Errors in this category are non-retryable.""") @Resolution(resolution = """This error is caused by a ledger-level misconfiguration or by an implementation bug.
    |Resolution requires participant operator intervention."""
    )
  28. case object InvalidGivenCurrentSystemStateOther extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    A failure due to the current system state

    A failure due to the current system state

    Annotations
    @Description(description = """The mutable state of the system does not satisfy the preconditions required to execute the request.
    |We consider the whole Daml ledger including ledger config, parties, packages, users and command
    |deduplication to be mutable system state. Thus all Daml interpretation errors are reported
    |as this error or one of its specializations."""
    )
    @RetryStrategy(retryStrategy = """Retry after application operator intervention.""") @Resolution(resolution = """ALREADY_EXISTS and NOT_FOUND are special cases for the existence and non-existence of well-defined
    |entities within the system state; e.g., a .dalf package, contracts ids, contract keys, or a
    |transaction at an offset. OUT_OF_RANGE is a special case for reading past a range. Violations of the
    |Daml ledger model always result in these kinds of errors. Expectation: this is due to
    |application-level bugs, misconfiguration or contention on application-visible resources; and might be
    |resolved by retrying later, or after changing the state of the system. Handling these errors requires
    |an application-specific strategy and/or operator intervention."""
    )
  29. case object InvalidGivenCurrentSystemStateResourceExists extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    A failure due to a resource already existing in the current system state

    A failure due to a resource already existing in the current system state

    Annotations
    @Description(description = """Special type of InvalidGivenCurrentSystemState referring to a well-defined
    |resource."""
    )
    @RetryStrategy(retryStrategy = """Inspect resource failure and retry after resource failure has been resolved (depends on type of
    |resource and application)."""
    )
    @Resolution(resolution = """Same as [[InvalidGivenCurrentSystemStateOther]].""")
  30. case object InvalidGivenCurrentSystemStateResourceMissing extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    A failure due to a resource not existing in the current system state

    A failure due to a resource not existing in the current system state

    Annotations
    @Description(description = """Special type of InvalidGivenCurrentSystemState referring to a well-defined
    |resource."""
    )
    @RetryStrategy(retryStrategy = """Inspect resource failure and retry after resource failure has been resolved (depends on type of
    |resource and application)."""
    )
    @Resolution(resolution = """Same as [[InvalidGivenCurrentSystemStateOther]].""")
  31. case object InvalidGivenCurrentSystemStateSeekAfterEnd extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    The supplied offset is out of range

    The supplied offset is out of range

    Annotations
    @Description(description = """This error is only used by the Ledger API server in connection with invalid offsets.""") @RetryStrategy(retryStrategy = """Retry after application operator intervention.""") @Resolution(resolution = """Expectation: this error is only used by the Ledger API server in connection with invalid offsets.""")
  32. case object InvalidIndependentOfSystemState extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    A request which is never going to be valid

    A request which is never going to be valid

    Annotations
    @Description(description = """The request is invalid independent of the state of the system.""") @RetryStrategy(retryStrategy = """Retry after application operator intervention.""") @Resolution(resolution = """Expectation: this is an application bug or ledger-level misconfiguration (e.g. request size limits).
    |Resolution requires application and/or ledger operator intervention."""
    )
  33. case object SecurityAlert extends ErrorCategoryImpl with ErrorCategory with Product with Serializable
    Annotations
    @Description(description = """A potential attack or a faulty peer component has been detected.
    |This error is exposed on the API with grpc-status INVALID_ARGUMENT without any details for security reasons."""
    )
    @RetryStrategy(retryStrategy = "Errors in this category are non-retryable.") @Resolution(resolution = """Expectation: this can be a severe issue that requires operator attention or intervention, and
    |potentially vendor support. It means that the system has detected invalid information that can be attributed
    |to either faulty or malicious manipulation of data coming from a peer source."""
    )
  34. case object SystemInternalAssumptionViolated extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    Some internal error

    Some internal error

    Annotations
    @Description(description = "Request processing failed due to a violation of system internal invariants. This error is exposed on the API with grpc-status INTERNAL without any details for security reasons") @RetryStrategy(retryStrategy = "Retry after operator intervention.") @Resolution(resolution = """Expectation: this is due to a bug in the implementation or data corruption in the systems databases.
    |Resolution will require operator intervention, and potentially vendor support."""
    )
  35. case object TransientServerFailure extends ErrorCategoryImpl with ErrorCategory with Product with Serializable

    Service is temporarily unavailable

    Service is temporarily unavailable

    Annotations
    @Description(description = "One of the services required to process the request was not available.") @RetryStrategy(retryStrategy = "Retry quickly in load balancer.") @Resolution(resolution = "Expectation: transient failure that should be handled by retrying the request with appropriate backoff.")

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
    Deprecated

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped