Consider the following code: ``` class A { int get foo => 3; int get bar => throw 'bad'; } void main() { final a = A(); debugger(); // <-- stop here } ``` Given the shown breakpoint, in DevTools we would expect to be able to expand `a` and evaluate the subfields of `A`. We should see something like `foo: 3, bar: "Error: bad"`. However, dwds tries to batch these expressions and sends a single request to Chrome like `[x.foo, x.bar]`. This array expression fails to evaluate because one of the subexpressions throws. When the full expression fails, the batch evaluator ends up resolving to an error for [every expression in the batch](https://github.com/dart-lang/webdev/blob/edcfbf123b44f5994cfc64d42185949b8e19bbf6/dwds/lib/src/services/batched_expression_evaluator.dart#L143). DevTools surfaces this as: ``` Failed to evaluate expression 'x.foo': InternalError: No batch result object ID. Failed to evaluate expression 'x.bar': InternalError: No batch result object ID. ``` Instead we should be showing the correct value for `foo` and the error thrown for `bar`.