Report Problem
type: https://didcomm.org/report-problem/2.0/problem-report
Message to report problems between parties. This message follows the DIDComm protocol.
{
"pthid": "<parent thread>", // The thread in which the problem occurred
"ack": [
"<previous report message id 1>",
"<previous report message id 2>",
"..."
],
"body": {
"code": "e.xfer.remote-server-down",
"comment": "Remote server {1} is down when connecting from {2}",
"args": [
"https://remote-server.org",
"https://my-server.org"
],
"escalate_to": "admin@remote-server.org"
},
"from": "did:polygonid:polygon:mumbai:2qJG6RYgN1u6v7JAYSdfixSwktnZ7hMzd4t21SCdNu",
"to": "did:polygonid:polygon:mumbai:2qFroxB5kwgCxgVrNGUM6EW3khJgCdHHnKTr3VnTcp"
}
Field | Description | Type | Required |
---|---|---|---|
pthid | Parent thread | string | ✅ |
ack | List of IDs of previous messages that triggered this one | string | ❌ |
code | Problem code (See Problem Codes section) | string | ✅ |
comment | Human-friendly text describing the problem. Can include {1} placeholders {2} | string | ❌ |
args | List of arguments matching the placeholders in comment field | string | ❌ |
escalate_to | URI where more help about the problem could be received | string | ❌ |
-
Example of report problem message:
{ "id": "6f269888-0f93-4012-9f9d-e1da9896f261", "typ": "application/iden3comm-plain-json", "type": "https://didcomm.org/report-problem/2.0/problem-report", "thid": "18633df6-3a6d-4a40-88bc-7fe7792f6375", "pthid": "5333207e-7338-4ab3-ac34-bf9a20dab6ab", "ack": [ "23b610b3-aec8-4d1c-8a75-3b22e5483fb0", "86fe7cc6-adcd-4530-8e07-92c060b427c8" ], "body": { "code": "e.xfer.remote-server-down", "comment": "Remote server {1} is down when connecting from {2}", "args": [ "https://remote-server.org", "https://my-server.org" ], "escalate_to": "admin@remote-server.org" }, "from": "did:polygonid:polygon:mumbai:2qJG6RYgN1u6v7JAYSdfixSwktnZ7hMzd4t21SCdNu", "to": "did:polygonid:polygon:mumbai:2qFroxB5kwgCxgVrNGUM6EW3khJgCdHHnKTr3VnTcp" }
-
Problem codes:
Problem codes are lower kebab-case. They are structured as a sequence of tokens delimited by '.' char. Structure:
A code is usually structured as 3 or more sections separated by '.'.
(e|w).(p|m|state-name).descriptor1[.descriptor2[.descriptor3]...]
The first section is called the sorted and should be 'e' for errors or 'w' for warnings.
Second section is the scope of the problem. Scope gives the sender's point of view of what context should be reverted
Scope can be 'p' for protocol, 'm' for message, or a formal state name from the sender's state machine in the active protocol. This state machine is the scope to which the sender protocol will revert to.
This section is a collection of descriptors that give more context to the problem. Descriptors are separated by '.' char.
examples:
e.xfer.remote-server-down
e.trust.user-not-found
e.p.req-time.expired