All the errmsg's in the errDetails arrays are concatenated together into the top level errmsg. This will cause a quicker return message overflow size in the case where a write command overflows the 16MB return message.
{ "ok": 0, "errCode": 65, "errmsg": "multiple errors in batch : E11000 duplicate key error index: test.batch_write_protocol.$a_1 dup key: { : 1.0 } :: and :: E11000 duplicate key error index: test.batch_write_protocol.$a_1 dup key: { : 1.0 } :: and :: E11000 duplicate key error index: test.batch_write_protocol.$a_1 dup key: { : 1.0 }", "n": 2, "errDetails": [ { "index": 1, "errCode": 11000, "errmsg": "E11000 duplicate key error index: test.batch_write_protocol.$a_1 dup key: { : 1.0 }" }, { "index": 3, "errCode": 11000, "errmsg": "E11000 duplicate key error index: test.batch_write_protocol.$a_1 dup key: { : 1.0 }" }, { "index": 4, "errCode": 11000, "errmsg": "E11000 duplicate key error index: test.batch_write_protocol.$a_1 dup key: { : 1.0 }" } ] }