Skip to main content

Resource $resend

The $resend operation manually triggers subscription notifications for a specific resource. This is invaluable for debugging subscription workflows, recovering from failed notifications, and replaying events during development or after system issues.

When a subscription notification fails or you need to reprocess a resource through your subscription pipeline, $resend lets you re-trigger the workflow without modifying the underlying resource—ensuring your integrations stay synchronized.

Use Cases​

  • Failed Notification Recovery: Retry subscription notifications that failed due to temporary network issues or downstream service outages
  • Debugging Subscriptions: Test subscription logic during development by manually triggering notifications
  • Data Synchronization: Force re-sync of specific resources to external systems after fixing integration issues
  • Selective Replay: Re-trigger a specific subscription for a resource instead of all subscriptions
  • Integration Testing: Verify that subscriptions fire correctly without creating new test data
Admin Required

The User, Bot, or ClientApplication invoking this operation must have project admin credentials.

Parameters​

The operation takes an optional option parameter, which is an object containing three fields:

OptionDescriptionData TypeDefault Value
verboseIndicates if verbose logging should be enabled.booleanfalse
interactionSubscriptions can be configured to trigger only when a resource is created or deleted as opposed to any update. This option allows you to specify which interaction type will be sent.update | create | deleteupdate
subscriptionA specific Subscription to trigger, formatted as Subscription/<id>. If left undefined, all Subscriptions will be triggered.stringundefined

Invoke the $resend operation​

const medplum = new MedplumClient();
// auth...
await medplum.post(medplum.fhirUrl(<resourceType>, <id>, '$resend'), {
verbose: true,
interaction: 'update',
subscription: 'Subscription/123'
});

Output​

If successful, you will receive the following OperationOutcome

{
"resourceType": "OperationOutcome",
"id": "ok",
"issue": [
{
"severity": "information",
"code": "informational",
"details": {
"text": "All OK"
}
}
]
}