Hi,
I have a string variable that gets set to null by an action. According to the outputs the value shows as null.
When I put the following condition it always evaluates to true even though it should be false
However, it I change the condition to:
empty(variables('email')) equals to false
This evaluates correctly.
My question is why is this so and why can't we use the condition to check the string variable for null as it clearly is null.
When should we use null check and when should we use 'empty' check?
I know for arrays is a difference between an empty array and null array.
But, clearly this string is a null value.
Never knew there was behind the scenes conversion for a string variable. In the world of C# programming a string that is assigned a null value is always null and not empty.
This is confusing to say the least especially when the output says null but the backend is actually ''.
So am I right to suggest that we should use the null compare for field values and empty comparison for string variable values ?
When ever you set the string variable to a null value Power Automate tries to convert it to a empty string.
That's why your condition doesn't produce the expected output when you try to compare it with null value.
Though you see null in the output it is actually an empty string and in the backend it is stored as "".
When you use empty() it produces the expected result as the string is clearly empty.
Please refer to the documentation for more insights regarding the same
Reference guide for functions in expressions - Azure Logic Apps | Microsoft Docs
If the information shared helps, please consider giving a thumbs up 👍 and mark solution as resolved
Michael E. Gernaey
497
Super User 2025 Season 2
David_MA
436
Super User 2025 Season 2
Riyaz_riz11
244
Super User 2025 Season 2