Forum Discussion
Azure ADF boolean parameter changes from true to True and false to False
I just created a new trigger in Azure ADF.
I seems the boolean parameter in the trigger is converted from lowercase to be capitalised.
Is anybody experiencing the same thing?
3 Replies
You are seeing lowercase JSON Boolean literals displayed as True and False after creating an ADF trigger. If the pipeline parameter is Boolean, that capitalization is normally a UI or string representation; the runtime value remains Boolean. Verify the parameter type in both pipeline and trigger, publish, run, and inspect the run’s Input pane. A JSON Boolean is unquoted; “true” or “False” inside quotes is a string. In expressions, consume the typed value directly, or use bool() when the source might be text, instead of comparing spellings. If a downstream API or filename requires lowercase text, use toLower(string(pipeline().parameters.yourFlag)). Inspect the exported trigger JSON to ensure the value is not quoted. If the Input pane shows a type change rather than casing, reproduce it with a minimal Boolean parameter and trigger, retain the exported JSON, and open an ADF support case because that would be a serialization defect.
- radwanalmsora1Tin Contributor
Hi,
Yes, this is a known and standard behavior in Azure Data Factory (ADF).
When you define boolean values in the ADF UI, it often displays or passes them to the underlying JSON infrastructure as capitalized (True False) This happens because ADF's backend expressions and pipeline engine rely on a specific syntax where booleans are evaluated this way, or it natively converts them when passing parameters from a trigger to a pipeline.
Here is what you need to know and how to handle it
Why this happens
ADF uses the Azure Resource Manager (ARM) JSON deployment model and the ADF expression language. In JSON, booleans are strictly lowercase (truefalse) However, when ADF passes trigger parameters or interprets expressions, it frequently treats them as string literals or converts them to uppercase tokens (True False) internally during the UI to backend translation.
How to handle it in your Pipeline
If your downstream activities like an If Condition, Web Activity, or Stored Procedure are failing or misbehaving because they expect lowercase strings or strict booleans, use the following workarounds.
For If Conditions Expressions Instead of comparing the parameter directly if it's acting like a string, use the @bool() function to explicitly cast it back to a proper boolean
@bool(trigger().outputs.pipeline.parameters.yourParamName)
To force lowercase String format:
If a downstream API or database requires lowercase true or false, convert the parameter to a lowercase string explicitly in your pipeline expression
@toLower(string(pipeline().parameters.yourParamName))
You don't need to worry about your trigger being broken; as long as you handle the parameter evaluation using ADF expressions like @bool(), the capitalization won't cause execution errors.
- radwanalmsora1Tin Contributor
Hi,
Yes, this is a known and standard behavior in Azure Data Factory (ADF).
When you define boolean values in the ADF UI, it often displays or passes them to the underlying JSON infrastructure as capitalized (True / False). This happens because ADF's backend expressions and pipeline engine rely on a specific syntax where booleans are evaluated this way, or it natively converts them when passing parameters from a trigger to a pipeline.
Here is what you need to know and how to handle it:
Why this happens
ADF uses the Azure Resource Manager (ARM) JSON deployment model and the ADF expression language. In JSON, booleans are strictly lowercase (true/false). However, when ADF passes trigger parameters or interprets expressions, it frequently treats them as string literals or converts them to uppercase tokens (True/False) internally during the UI-to-backend translation.
How to handle it in your Pipeline
If your downstream activities (like an If Condition, Web Activity, or Stored Procedure) are failing or misbehaving because they expect lowercase strings or strict booleans, use the following workarounds.
@bool(trigger().outputs.pipeline.parameters.yourParamName)To force lowercase String format:
If a downstream API or database requires lowercase "true" or "false", convert the parameter to a lowercase string explicitly in your pipeline expression.
@toLower(string(pipeline().parameters.yourParamName))You don't need to worry about your trigger being broken; as long as you handle the parameter evaluation using ADF expressions like @bool(), the capitalization won't cause execution errors.