execute
Runs calls in parallel on these tools and returns one result for each call, in the order of the calls.
A call never fails the caller. When the tool throws, when the input does not match the tool's schema, or when no tool has the call's name, the result has ChatMessage.ToolResult.isError set and the message of the error as its text, so the model can correct itself. That includes what a browser throws in place of an exception, such as the Error of a request that got no response.
Only two things are propagated: a cancellation of the caller, and an error of the program or of its machine, which is a subclass of Error such as OutOfMemoryError or AssertionError.