`'false'` is a valid non-empty string. I can see why we need this here, maybe we can update the message to indicate that:

`Role must be a valid non-empty string and cannot be "false"`

And also write a unit test for it.