Skip to main content
Throw on Variable Not Found prevents a channel from sending when a variable in the rendered template can’t be resolved. Toggle it on in the notification template’s Settings > Advanced section. For example, if your email template includes Hello {profile.first_name}, but first_name isn’t in the user profile or the Send API profile object, Courier throws a render error for that channel. Errors are visible in the template preview and in message logs: Preview
Screenshot of Variable Not Found on Preview
Logs
Screenshot of Variable Not Found on Logs

Conditional Blocks

The check runs after all conditionals are evaluated and only inspects blocks that will actually be sent. If a block is hidden by a condition, its variables aren’t checked. For example:
  1. You add a conditional on profile.first_name to a text block.
  2. The block uses {profile.first_name}.
  3. The profile has no first_name, so the block is hidden by the condition.
  4. Throw on Variable Not Found does not trigger, and the message sends successfully.
Screenshot of a Conditional Block

Multiple Channels

Each channel is checked independently. If {profile.first_name} appears in your email template but not in your Inbox template, only the email channel fails; Inbox renders and sends successfully.

Observability

Render errors from this feature appear in Outbound Webhooks and Observability integrations under channel update events.