Hello {profile.first_name}, but first_name is missing from the user profile or the Send API profile object, Courier throws a render error for that channel. You can see the error in template preview and message logs:
Preview


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:- You add a conditional on
profile.first_nameto a text block. - The block uses
{profile.first_name}. - The profile has no
first_name, so the block is hidden by the condition. - Throw on Variable Not Found does not trigger, and the message sends successfully.

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 still renders and sends.
Observability
Render errors from this feature appear in Outbound Webhooks and Observability integrations under channel update events.Related
Variables
Insert dynamic values from data, profile, tenant, and brand objects.
Send Conditions
Control when notifications and channels send using conditional logic.