Skip to main content
Check each response in this order:

1. Top-level errors

No mutation ran, and data is empty:
The same happens with an expired token, an unknown field or a wrong argument type.

2. Result types

An OperationError has these fields:
PatientPayload.patient, Order.patient and Order.organization can also be an OperationError. That means the call was processed, but that part couldn’t be read back.

3. Changes that weren’t applied

Each change in changes has a status:
  • APPLIED: saved. Nothing to do, unless it’s ADVISORY.
  • REJECTED: fix the input that reason describes. Skip entries that were rejected only because another input failed.
  • AMBIGUOUS: choose one of the options and resend.
Then resend the whole call.

Checklist

  1. If errors is present, stop and fix the token or query.
  2. Branch on __typename. Resend ambiguous matches with an id. On an OperationError, retry only when retryable is true.
  3. Resolve the changes that aren’t APPLIED and resend.
  4. Show ADVISORY changes and screening alerts to the person responsible.
Last modified on October 29, 2026