@antonok But I don't think it works that way - an inner Err() will cause the calling function to return Err() - so I think only one ? is needed because it will bubble up the chain. In any event, it doesn't seem idiomatic, as normally you would apply ? right after the call that could fail, unless there is a specific reason for not yielding back at that moment.