Ah, I should have mentioned that in my playbook I have a hosts line like:
hosts: group1,group2,group3
... and then I limit by this custom group I mentioned (which may be empty or not exist at all). That's when the playbook fails... when the --limit doesn't match any host at all.
You did, however, give me an idea. By making my hosts like something like:
hosts: group1,group2,group3,&{{ required | default('all') }}
... I can provide the custom group as an extra variable and it works as I need it to. Thanks for replying!