With recent stabilisation of error handling we made this bug, it's also a time to review all this and finally decide if just returning function should be able to return failure (explicitly) or if failure happens as a last value is being allowed to be return to the caller and it can then handle it. I can't decide concretely without taking some extra time and creating multiple examples of both cases to see if second also makes sense or we make it more limited, explicit.
With recent stabilisation of error handling we made this bug, it's also a time to review all this and finally decide if just returning function should be able to return failure (explicitly) or if failure happens as a last value is being allowed to be return to the caller and it can then handle it. I can't decide concretely without taking some extra time and creating multiple examples of both cases to see if second also makes sense or we make it more limited, explicit.