join.py: Handle more error cases with useful exceptions