- Add @contextmanager decorator for proper exception handling - Remove all simple_search() calls from within hierarchical_search() - Return mode='error' to signal fallback needed - Handle fallback in search_passages() (outside context manager) - This eliminates 'generator didn't stop after throw()' error