Error dispositions
The disposition field of an MDN describes the outcome. as2d emits and understands the standard set; this table is what as2d sends and what each value means to your partner (and vice versa when reading partners’ receipts).
| Disposition | Class | When as2d sends it |
|---|---|---|
processed | success | message fully processed and stored |
processed/error: authentication-failed | error | AS2-From/AS2-To matched no partnership |
processed/error: insufficient-message-security | error | required signing/encryption layer missing (security floor) |
processed/error: decryption-failed | error | could not decrypt (wrong certificate, incompatible cipher, corrupt data) |
processed/error: integrity-check-failed | error | signature verification failed |
processed/error: decompression-failed | error | bad ZLIB data, or double compression |
processed/error: error-storing-transaction | error | storage backend failure (retryable by the partner) |
processed/error: unexpected-processing-error | error | anything else |
failed/Failure: unsupported format | failure | receipt requested with an unsupported signature protocol |
failed/Failure: unsupported MIC-algorithms | failure | receipt requested with only unsupported digests, marked required |
failed/Failure: unable to sign MDN | failure | signed receipt requested but our signing identity is unusable |
failed/Failure: unsupported receipt-delivery-option | failure | asynchronous receipt requested but not available on this deployment |
Notes for integrators:
- error vs failure:
processed/errormeans the message failed a processing step;failed/Failuremeans the receipt request itself could not be honored (RFC 4130 §7.5.3) — the message is not processed in that case either, and the partner should fix the request and resend. - Inbound receipts are parsed leniently: folded header lines, bare
modifiers (
processed/errorwithout text), spelling variations of digest names, and the nonstandard forms some products emit are all accepted and normalized before your journal sees them. - A partnership can set
interop.block_error_mdn = trueto suppress negative receipts to a specific partner (some products react badly to them); rejections are still journaled locally.