fmgp.did.comm.protocol.reportproblem2

Members list

Type members

Classlikes

object CD_did extends CodeDescriptors

DID is unusable. - A DID is unusable because its method is unsupported — or because its DID doc cannot be parsed — or because its DID doc lacks required data.

DID is unusable. - A DID is unusable because its method is unsupported — or because its DID doc cannot be parsed — or because its DID doc lacks required data.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
CD_did.type
object CD_legal extends CodeDescriptors

Failed for legal reasons.

Failed for legal reasons.

An injunction or a regulatory requirement prevents progress on the workflow. Compare HTTP status code 451.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
CD_legal.type
object CD_me extends CodeDescriptors

Internal error.

Internal error.

The problem is with conditions inside the problem sender’s system. For example, the sender is too busy to do the work entailed by the next step in the active protocol. Problems in this category resemble HTTP’s 5xx status codes.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
CD_me.type
object CD_me_res extends CodeDescriptors

A required resource is inadequate or unavailable. - The following subdescriptors are also defined: me.res.net, me.res.memory, me.res.storage, me.res.compute, me.res.money

A required resource is inadequate or unavailable. - The following subdescriptors are also defined: me.res.net, me.res.memory, me.res.storage, me.res.compute, me.res.money

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
CD_me_res.type
object CD_msg extends CodeDescriptors

Bad message.

Bad message.

Something is wrong with content as seen by application-level protocols (i.e., in a plaintext message). For example, the message might lack a required field, use an unsupported version, or hold data with logical contradictions. Problems in this category resemble HTTP’s 400 status code.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
CD_msg.type
object CD_req extends CodeDescriptors

Circumstances don’t satisfy requirements.

Circumstances don’t satisfy requirements.

A behavior occurred out of order or without satisfying certain preconditions — or circumstances changed in a way that violates constraints. For example, a protocol that books plane tickets fails because, halfway through, it is discovered that all tickets on the flight have been sold.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
CD_req.type
object CD_req_time extends CodeDescriptors

Failed to satisfy timing constraints.

Failed to satisfy timing constraints.

A message has expired — or a protocol has timed out — or it is the wrong time of day/day of week.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
trait CD_tust

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object CD_tust_.type
object CD_tust_crypto_.type
object CD_tust_ extends CD_tust

Failed to achieve required trust.

Failed to achieve required trust.

Typically this code indicates incorrect or suboptimal behavior by the sender of a previous message in a protocol. For example, a protocol required a known sender but a message arrived anoncrypted instead — or the encryption is well formed and usable, but is considered weak. Problems with this descriptor are similar to those reported by HTTP’s 401, 403, or 407 status codes.

Attributes

Supertypes
trait CD_tust
class Object
trait Matchable
class Any
Self type
CD_tust_.type
object CD_tust_crypto_ extends CD_tust

Cryptographic operation failed.

Cryptographic operation failed.

A cryptographic operation cannot be performed, or it gives results that indicate tampering or incorrectness. For example, a key is invalid — or the key types used by another party are not supported — or a signature doesn’t verify — or a message won’t decrypt with the specified key.

Attributes

Supertypes
trait CD_tust
class Object
trait Matchable
class Any
Self type
object CD_xfer extends CodeDescriptors

Unable to transport data.

Unable to transport data.

The problem is with the mechanics of moving messages or associated data over a transport. For example, the sender failed to download an external attachment — or attempted to contact an endpoint, but found nobody listening on the specified port.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
CD_xfer.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object CD_did.type
object CD_legal.type
object CD_me.type
object CD_me_res.type
object CD_msg.type
object CD_req.type
object CD_req_time.type
object CD_xfer.type
Show all
case class ProblemCode(sorter: 'e' | 'w', scope: 'p' | 'm' | String, descriptors: String*)

https://identity.foundation/didcomm-messaging/spec/#problem-reports

Value parameters

scope

gives the sender’s opinion about how much context should be undone if the problem is deemed an erro.

  • p if error undo the full protocol
  • m if error undo last step
  • if error until state
sorter

tells whether the consequence of the problem are fully understood.

  • e is a error
  • w is a warning

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object ProblemCode

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class ProblemReport(id: MsgID, to: Set[TO], from: FROM, pthid: MsgID, ack: Option[Seq[MsgID]], code: ProblemCode, comment: Option[String], args: Option[Seq[String]], escalate_to: Option[String])
{
 "type": "https://didcomm.org/report-problem/2.0/problem-report",
 "id": "7c9de639-c51c-4d60-ab95-103fa613c805",
 "pthid": "1e513ad4-48c9-444e-9e7e-5b8b45c5e325",
 "ack": ["1e513ad4-48c9-444e-9e7e-5b8b45c5e325"],
 "body": {
   "code": "e.p.xfer.cant-use-endpoint",
   "comment": "Unable to use the {1} endpoint for {2}.",
   "args": [
     "https://agents.r.us/inbox",
     "did:sov:C805sNYhMrjHiqZDTUASHg"
   ],
   "escalate_to": "mailto:admin@foo.org"
 }
}

Value parameters

ack

OPTIONAL - It SHOULD be included if the problem in question was triggered directly by a preceding message. (Contrast problems arising from a timeout or a user deciding to cancel a transaction, which can arise independent of a preceding message. In such cases, ack MAY still be used, but there is no strong recommendation.)

args

OPTIONAL - Contains situation-specific values that are interpolated into the value of comment, providing extra detail for human readers. Each unique problem code has a definition for the args it takes. In this example, e.p.xfer.cant-use-endpoint apparently expects two values in args: the first is a URL and the second is a DID. Missing or null args MUST be replaced with a question mark character (?) during interpolation; extra args MUST be appended to the main text as comma-separated values.

code

REQUIRED - Deserves a rich explanation; see Problem Codes below.

comment

OPTIONAL - but recommended. Contains human-friendly text describing the problem. If the field is present, the text MUST be statically associated with code, meaning that each time circumstances trigger a problem with the same code, the value of comment will be the same. This enables localization and cached lookups, and it has some cybersecurity benefits. The value of comment supports simple interpolation with args (see next), where args are referenced as {1}, {2}, and so forth.

escalate_to

OPTIONAL - Provides a URI where additional help on the issue can be received.

pthid

REQUIRED - The value is the thid of the thread in which the problem occurred. (Thus, the problem report begins a new child thread, of which the triggering context is the parent. The parent context can react immediately to the problem, or can suspend progress while troubleshooting occurs.)

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object ProblemReport

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

Extensions

Extensions