For now p3wm relies on bash's set -u feature to fail fast. This is fine for a in-house sysadmin's script / personal project. But the error messages aren't very user-friendly for end-users. To print a user-friendly error message, set -u just isn't good enough and I can't check empty variables with [[ ... ]] anymore since the -u takes higher precedence.
Maybe it's time to rewrite in a more maintainable programming language rather than taking the bash shortcut.