It's a built-in way to provide extra context for complex, nested runtime errors. In contrast to AggregateError, the cause of the error should be related to the parent error - usually more specific.