Here is the exception caught:
Here it is written as the result if the result is requested
The test that triggers this scenario is the task WriteConcernResult:
PS> Invoke-Build WriteConcernResult Add-MdbcData.test.ps1
I understand that the old way internally has the same data and just wraps them by properties even if they do not exist in the underlying BsonDocument. So actually no info is lost with the new way, as I initially thought. This is good. But at least the old way makes it possible to return command results as the same strongly typed object in all cases, both success and failure. With the new way I have to return a command result on success and BsonDocument on failure. Thus, processing of a result will be slightly more difficult.
It is not a big deal for me. I will adjust my tests for using BsonDocument (Result) with no problems. I just wanted to be sure that this change in the driver is well weighted and all details are considered.