SOLVED 3.01RC12 on Ethernet + Duex5, M291 S2 nonblocking inside IF loop

Potential bug: M291 S2 option is blocking and working correctly in Duet Ethernet + Duex5 as long as it is outside of a conditional IF statement. Once it is used inside an IF statement, S2 option is no longer blocking.
RRF3 notes only states only nonblocking M291 options are available in Duet3+SBC.

Thanks, added to my list to investigate.

Can you post the macro?
Board: Duet 2 WiFi (2WiFi)
Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.01RC12 (20200506b1)
Duet WiFi Server Version: 1.23
Duet Web Control 2.1.7M291 S2 is definitely blocking inside macro when run from DWC or called with M98
Haven't tried running withing a print file.while iterations < 6 if mod(iterations+1,2)!=0 echo "odd number" M291 P{iterations+1 ^ " is an odd number"} R"Odd number" S2 else echo "even number" M291 P{iterations+1 ^ " is an even number"} R"Even number" S2 G4 S0.5 if !move.axes[0].homed M291 P"axis is not homed (IF)" R"check" S2 elif move.axes[1].homed M291 P"axis 1 is homed, but not 0 (ELIF)" R"check" S2 else M291 P"axis is not homed (ELSE)" R"check" S2

@OwenD said in 3.01RC12 on Ethernet + Duex5, M291 S2 nonblocking inside IF loop:
Can you post the macro?
Board: Duet 2 WiFi (2WiFi)
Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.01RC12 (20200506b1)
Duet WiFi Server Version: 1.23
Duet Web Control 2.1.7M291 S2 is definitely blocking inside macro when run from DWC or called with M98
Haven't tried running withing a print file.while iterations < 6 if mod(iterations+1,2)!=0 echo "odd number" M291 P{iterations+1 ^ " is an odd number"} R"Odd number" S2 else echo "even number" M291 P{iterations+1 ^ " is an even number"} R"Even number" S2 G4 S0.5 if !move.axes[0].homed M291 P"axis is not homed (IF)" R"check" S2 elif move.axes[1].homed M291 P"axis 1 is homed, but not 0 (ELIF)" R"check" S2 else M291 P"axis is not homed (ELSE)" R"check" S2
Uhm, odd, its working for me now as well. Could have sworn it wasn't behaving correctly yesterday. Thanks for the confirmation! Will have to go back and see what i did wrong.
Edit:
This is what was tripping me up. I wasn't seeing the M117 message pop up on the PanelDue after M291, so I thought it was running ahead.
elif state.currentTool = 1 ; SOME CODE HERE M300 ; beep M83 ; set extruder to relative moves G1 E250 F2000 ; unload fast M300 ; beep M291 P"Please clear filament guide tube of old material!" S2 G4 S1 ; Wait 1 second M117 "Start feeding filament into LT Tool!" G4 S2 ; Wait 2 seconds ; SOME OTHER CODE

@techild
Glad you're sorted.
Might be best to mark thread as solved.