There is an unexplained ignore_errors=True in the internal _initialize_chain helper:
shutil.rmtree(cache_path('fees'), ignore_errors=True)
This is fine, because no error should happen. But it is a bit confusing, because an ignored error may lead to a later error anyway.
Fix that by failing early instead.
Also, re-write the simple block to pathlib.