web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Condition Action based...
Power Automate
Suggested Answer

Condition Action based on Approval Responses keeps evaluating incorrectly

(1) ShareShare
ReportReport
Posted on by 10
I have created an approval flow where approvals may be needed by up to 3 different people.  Depending on the document, it might only need one approver, or it might need 2 or it might need 3.  I need to create a condition whereby the approval is evaluated not based on it is approved but checking that it was not rejected.  The approval for an item has three potential responses: approved, rejected or not needed (approver field is null)
Few couple things to note as to why it's structured the way it is:
  • Each approval is a start and wait approval (first to respond) because I don't want to send the approvals to a group of approvers
  • I need to be able to tell who has responded and who as not
This is the condition action that I can't get to evaluate properly:

Breakdown of the first three conditions are "responses approver response" is not equal to "Reject" to accommodate for the times where there is no approver and no approval response.  These are my response choices to use for dynamic content:

I think I've tried all three of these options with "is not equal to Reject" but none seem to work.  I've also verified that the output a Reject response is actually "Reject" and not "Rejected".  
If it's helpful to know this is the message I get when the condition is evaluated

How do I fix this condition so that it evaluates properly?
Categories:
I have the same question (0)
  • Suggested answer
    Pstork1 Profile Picture
    69,556 Most Valuable Professional on at
    For the three responses you need to check whether the outcome of each response contains reject.  You'll do each approval in a series like this
     
    Start and Wait for approval for approver one
         -if outcome does not contain reject and a second approver is needed then 
                -Send Start and Wait for approval for approver two
                    -if outcome does not contain reject and a third approver is needed then 
                            -Send Start and Wait for approval for approver three
     
    If outcome contains reject on any of the if statements then the item is rejected.

    ----------------------------------------------------------------------------------
    If this Post helped you, please click "Does this answer your question" and give it a like to help others in the community find the answer too!

    Paul Papanek Stork, MVP
    Blog: https://www.dontpapanic.com/blog
     
     
  • Suggested answer
    Haque Profile Picture
    3,653 on at
    Hi @CU11121951-0
     
    About the last error you mentioned:
     
    “The expression contains dynamic functions, variables or parameters that cannot be resolved in the debugger”  shows when you use advanced expressions in a Condition. The debugger in Power Automate can’t evaluate dynamic references like triggerOutputs()?['body/...'] or result('ActionName') at design time, so it throws that warning. It doesn’t mean your expression is wrong; it just means the designer can’t preview it.
     
    The condition will be evaluated correctly at runtime when the flow executes. It issues a false positive warning  simply because it can’t resolve dynamic values while you’re editing. You can ignore the debugger warning — it’s normal for dynamic expressions. Just run and test the flow ans see history -  it works fine.
     

    One of the solutions @Pstork1 mentioned. 
     
    In my point of view, what else you can do is in the expression (advanced expressions to evaluate conditions):
     
    Condition-1:  We can simplify with an expression instead of stacking multiple “is not equal to Reject” checks in the designer
    and(
       or(empty(variables('Approver1Response')), not(equals(variables('Approver1Response'),'Reject'))),
       or(empty(variables('Approver2Response')), not(equals(variables('Approver2Response'),'Reject'))),
       or(empty(variables('Approver3Response')), not(equals(variables('Approver3Response'),'Reject')))
    )
    
    Note: empty - checks "not needed" case, not(equals(...,'Reject')) guards against "approved" case and outer and confirms all stakeholders(approvers) should meet the condition inside.
     
    Condition-2: We need to make sure at least one approver is/has "Approved"
     
    or(
       equals(Approver1Response,'Approve'),
       equals(Approver2Response,'Approve'),
       equals(Approver3Response,'Approve')
    )
    
    Combine them (two conditions): Condition passes if no one rejects AND at least one approves
    and(
       // Condition 1: No Rejects
       and(
          or(empty(variables('Approver1Response')), not(equals(variables('Approver1Response'),'Reject'))),
          or(empty(variables('Approver2Response')), not(equals(variables('Approver2Response'),'Reject'))),
          or(empty(variables('Approver3Response')), not(equals(variables('Approver3Response'),'Reject')))
       ),
       // Condition 2: At Least One Approve
       or(
          equals(variables('Approver1Response'),'Approve'),
          equals(variables('Approver2Response'),'Approve'),
          equals(variables('Approver3Response'),'Approve')
       )
    )
    
     
    The above combined checks ensures no approver rejects, at least one aprover approves and nulls are treated as "no needed".
    Please note that in expressions, empty()  function is the safest way to check for nulls. The check empty(variables('Approver1Response')) returns true if approver1Response is null or blank - just for your reference.
     
     
    Tip: Replace variables('ApproverXResponse') with the actual dynamic content fields you’re using (e.g., items('Apply_to_each')?['Approver1Response']).
     

    Now complete these test scenario if you have implemented expressions:
     
    Test Scenario
    Approver1 Approver2 Approver3 Expected Outcome
    Approve null null ✅ Pass
    Approve Approve null ✅ Pass
    Approve Approve Approve ✅ Pass
    Reject Approve null ❌ Fail
    null null null ❌ Fail
     
     
    Please let me know if this helps.
     

    I am sure some clues I tried to give. If these clues help to resolve the issue brought you by here, please don't forget to check the box Does this answer your question? At the same time, I am pretty sure you have liked the response!
     
  • deepakmehta13a Profile Picture
    369 on at

    Hi,

    The issue here is that “Start and wait for an approval” returns responses as an array/object, not a simple string, so using “is not equal to Reject” directly on approverResponse won’t evaluate correctly.

    What you should do instead is:


    • Use the Outcome field (which returns “Approve” or “Reject”)

    • Or explicitly reference the response like:
      outputs('Start_and_wait_for_an_approval')?['body/outcome']

    Also, for multiple approvers, handle nulls safely using something like:


    • or(equals(outcome,'Approve'), empty(outcome))

    In short, the fix is:


    • Don’t compare raw response objects

    • Use Outcome (string) or properly extract the value


    Hope this helps.
    --------------------------------------------------------------------------------------------------------------------------------------------
    If this helps resolve your issue, please consider marking the response as Verified so it can help others facing a similar scenario.

    If you found this helpful, you can also click “Yes” on “Was this reply helpful?” or give it a Like.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Launch!

Jump in, show your community spirit, and win prizes!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Congratulations to the May Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Automate

#1
Valantis Profile Picture

Valantis 377

#2
11manish Profile Picture

11manish 279

#3
David_MA Profile Picture

David_MA 234 Super User 2026 Season 1

Last 30 days Overall leaderboard