I'm using groovy pipeline scripts to run Robot Framework tests in slaves.
I have a script which reruns the failed tests and produces an output.xml file which is then merged with the first run's output.xml.
Jenkins or the robot plugin marks the build as unstable only when the merged output.xml is produced and processed while reporting.
However, when all tests are passed in first run then the the build status is marked with green.
Note: All my tests are critical