The error is only raised when the result() is evaluated, so when another function is waiting for the broken future object there is no error being raised.
from executorlib import SingleNodeExecutor
def get_error(lst):
raise ValueError()
with SingleNodeExecutor() as exe:
lst = []
for i in range(1, 4):
lst = exe.submit(
get_error,
lst=lst,
)
print(lst.result())