Hello,
I interrogated Copilot within the Run that shows the ridiculous result False = True (see image).
I agree with Copilot ; there is a bug in the fundamental process of evaluating Boolean math.
Here's the exchange:
Prompt :
Please explain how the component 'if BillingCat NOT NULL (RDate NULL)' is directing the execution to the True path when the component is correctly evaluating null != null as a False statement. For information, the component 'Set variable BillingCategory' shows the following JSON output : { "body": { "name": "BillingCategory", "type": "String", "value": null } }
Response :
The component 'if BillingCat NOT NULL (RDate NULL)' checks if the variable BillingCategory is not null using this expression:
{ "and": [ { "not": { "equals": [ "@variables('BillingCategory')", "@null" ] } } ] }
If BillingCategory is actually null (as shown in your JSON output), this condition should evaluate to False, and the flow should follow the False (Else) path, not the True path.
If the True path is being executed despite BillingCategory being null, possible causes:
The value of BillingCategory is not truly null (e.g., it could be an empty string "" instead of null).
There may be a logic or variable assignment issue earlier in the flow.
The run history may show a previous value or a different branch being executed.
Tip:
Check the run history for the exact value of BillingCategory at the moment this condition is evaluated. If it is null, the True path should not be executed. If you see otherwise, there may be a bug or an unexpected value (like an empty string).
Thanks
Regards
Marc Petroff