The available_when_donor is not working due to an error in the Galera monitor code even if all the requirements for it to work are met. The wrong result is used when fetching rows which leads to the described behavior.
For example if we have a Galera cluster with three nodes and two of them crash. If we restart one of the nodes, it will try to reconnect to the cluster. With the xtrabackup SST method, it will pick the last remaining node as the donor. The donor node goes into desynced status and the joining node starts to catch up to the cluster. When we use xtrabackup, we can still use the remaining node for normal operation since the SST will not block. MaxScale normally would not use desynced nodes for reads or writes due to the possibility of data being out of sync on the desynced node. If we configure the Galera monitor to allow donors to be used when the SST method is xtrabackup, the last remaining node will be labeled as the master node. This will allow normal operation even though there is only one node left and it is desynced.
The bug caused the check for the SST method to always fail even if it was xtrabackup. This means that the last node in the Galera cluster would be labeled as only Running due to the fact that it is desynced.