Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Troubleshooting

Start with the logs: every message’s journey is journaled (receivedstored/rejected, mdn-received, delivered, retry-scheduled, …) with the partnership id and message id on every line.

The partner’s message is rejected

The disposition in our negative receipt (and the rejected journal entry) says why:

DispositionMeaningUsual cause
authentication-failedno partnership matched AS2-From/AS2-Toidentifier typo, case mismatch, or the partnership is missing — check both sides’ AS2 names character-for-character
insufficient-message-securitymessage lacked a layer the partnership requirespartner sent unsigned/unencrypted; either they misconfigured, or your security floor is stricter than agreed
decryption-failedcould not decryptpartner encrypted to the wrong (old?) certificate; or an incompatible cipher (CAST5/IDEA with Java partners — use 3DES/AES)
integrity-check-failedsignature did not verifywrong partner certificate installed on our side, or the partner rotated certificates
decompression-failedbad or doubled compressiondouble compression is rejected by design
unsupported format / unsupported MIC-algorithmsreceipt request we cannot honorpartner asked for a signature protocol/digest outside the supported set
unsupported receipt-delivery-optionasync receipt requested but not available on this deploymentdeployment/licensing does not include async MDNs
error-storing-transactionstorage backend failedcheck the storage backend’s health; the partner will retry

Our send fails

  • HTTP errors: 4xx (except 408/429) are treated as permanent — check URL, HTTP auth, and that the partner has your partnership configured. 5xx/408/429/connection errors retry with exponential backoff; watch retry-scheduled and the final delivered or gave-up.
  • gave-up journal entries carry the last error text and attempt count.

Receipts mismatch (mdn-mic-mismatch)

Work through the checklist in MDN receipts — it is almost always non-mirrored security attributes or a counterpart quirk listed in Working with specific products.

The server answers 503 to partners

Check /healthz:

  • degraded: unlicensed / degraded: license expired — see Installing your license.
  • Body ok but 503s under load — you may have hit a configured daily message quota; the 503 carries a Retry-After header and partners’ retry logic rides it out.

The server won’t start

The error printed at startup is specific by design:

  • license invalid → the exact verification failure
  • configuration exceeds entitlements → the partnership and entitlement named
  • storage unreachable → connect errors surface at boot (deliberately — fail at boot, not at the first message)
  • a certificate expired → named alias and dates

Getting help

Include: the journal lines for one affected message id, the negative MDN text (if any), your partnership definition (redact keys/passwords), and both sides’ declared security attributes. That is nearly always enough to diagnose an interop issue on the first round-trip.