A trace is currently marked as successful even when one or more subprocesses (spans) fail. This leads to misleading trace status and makes failures easy to miss.
Additionally, failure messages reference internal IDs instead of human-readable names, which makes debugging unnecessarily difficult.
