How to perform rolling update (1 by 1) without stopping whole play at first error?

Hello dear community,
I’m a beginner with Ansible and I’m trying to perform a rolling update/reboot on multiple hosts one after another.
I’m actually using:

hosts: 'all'
strategy: free (same issue for linear)
serial: "{{max_parallel | default('100%')}}"

The thing is that, when I specify max_parallel:1, the whole play/job fail on the first error encountered (which is not the case when there is more than 1 host…)
I would like it to keep going on next hosts even if an error was encountered on the previous one (to be faire I did not test the case where all hosts in a “batch” are failing in order to see if it also end the play)).

I’ve already tried max_fail_percentage: 100 or any_errors_fatal: false, nothing changed.

Is there something I need to setup differently?

Thanks for you help!

Finally found this related topic: workaround for serial: 1 failures stopping the entire playbook? - Archives / Ansible Project - Ansible

But no answers since 2019 :sweat_smile:
Is it still a viable solution?