Skip to main content
Every /connect/* route returns errors in a consistent JSON envelope. Gather (/qsi/gather/*) and legacy vendor routes (/qsi/{vendor}/*) keep their existing shapes.

Envelope shape

  • details is omitted when empty (not null, not {}).
  • requestId is in meta for Gather compatibility.

Authentication and authorization

Validation

details contains field-level keys (e.g. { "apiKey": "apiKey is required" }).

Integration lifecycle

Health checks: General unhealthy vendor state may return 502/504 with data.healthy: false in a success envelope. Credential rejection (MS6+) returns 502 with error code VENDOR_AUTH_FAILED instead.

Vendor passthrough

Mapped from outbound vendor HTTP failures: details may include vendorStatus, vendorStatusLabel, or vendorMessage (never raw vendor secrets).

Internal and order errors

Gather errors

Gather uses the same error + meta shape on /qsi/gather/* but with Gather-specific codes. See Gather error handling.