body_ might_ complete_ normally_ catch_ error
This 'onError' handler must return a value assignable to '{0}', but ends without returning a value.
Description
#
The analyzer produces this diagnostic when the closure passed to the
onError parameter of the Future.catchError method is required to
return a non-null value (because of the Futures type argument) but can
implicitly return null.
Example
#
The following code produces this diagnostic because the closure passed to
the catchError method is required to return an int but doesn't end
with an explicit return, causing it to implicitly return null:
void g(Future<int> f) {
f.catchError((e, st) {});
}
Common fixes
#
If the closure should sometimes return a non-null value, then add an
explicit return to the closure:
void g(Future<int> f) {
f.catchError((e, st) {
return -1;
});
}
If the closure should always return null, then change the type argument
of the Future to be either void or Null:
void g(Future<void> f) {
f.catchError((e, st) {});
}
Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Page last updated on 2025-9-4. View source or report an issue.