In movement/utils/vector.py, _raise_error_for_missing_spatial_dim() does:
raise logger.error(ValueError(...))
logger.error() returns None, so callers get TypeError: exceptions must derive from BaseException instead of ValueError.
Fix: call logger.error() and raise separately.