I had a very similar question a few days ago since Im still learning Zig.
Async functions from a group only can return Io.cancelable.Canceled as error (if I got it right). Thus, you have to catch the errors. Thats my current solution (simplified), maybe it helps understanding: