If I have a single stage pipeline that calls an sh script that deliberately fails, and I use try .. catch around the script, then the stage is marked as "green/success" in the pipeline, but it should be marked as "pink/failed."
However, if I then add a final additional stage, the original first stage (previous stage) will then correctly be marked as "pink/failed."
Here is some simple Jenkinsfile code that demonstrates the problem.
You will see that the first (and only) stage is marked as green passed.
If you uncomment the penultimate line stage "End" then you will find the first stage to be marked as pink failed, which is correct.