title: Flux.onErrorContinue() null object
body: <p>I have an issue with onErrorContinue() that the object passed to the Biconsumer is null.</p>
  <p>I'm using Spring boot 2.1.13.RELEASE and reactive mongo with reactor-core version 3.2.15.RELEASE.</p>
  <p>The problem happens when a call to the database to retrieve a record with the id returns no record and using the operator switchIfEmtpy() i throw an exception using Mono.error() and downstream i try to handle this exception using onErrorContinue().</p>
  <p>The code below explains the issue:</p>
  <pre><code>public static void main(String[] args) {
      Flux.range(1, 10)
              .flatMap(integer -&gt; mapInteger(integer))
              .doOnNext(System.out::println)
              .onErrorContinue((throwable, o) -&gt; System.out.println(&quot;error with &quot; + o)) // o is null
              .subscribe();
  }
  
  public static Mono&lt;Integer&gt; mapInteger(Integer num) { // This is here to simulate the db call
      return Mono.just(num)
              .flatMap(t -&gt; {
                  if (t == 5)
                      return Mono.empty();
                  else
                      return Mono.just(num * 2);
              })
              .switchIfEmpty(Mono.error(new RuntimeException(&quot;Error happened while mapping integer!&quot;)));
  }
  </code></pre>
  <p>This will print the below values:</p>
  <pre><code>2
  4
  6
  8
  error with null
  12
  14
  16
  18
  20
  </code></pre>
  <p>PS. I don't have the issue when another error happens in the stream.</p>
  <p>Update:
  The mapInteger() was to simulate the below call to reactivemongo repository:</p>
  <pre><code>public Mono&lt;MetaData&gt; getFromDbByKey(String key) {
          return repository
              .findByKeyAndDeletedIsFalse(key)
              .switchIfEmpty(Mono.error(() -&gt; new RuntimeException()));
      }
  </code></pre>
  <p>and the call to getFromDbByKey() returns this MetaData which i need to map it to the flux in the main flow.</p>
  <p>with onErrorContinue, we catch the Throwable and based on its type we do different handling to each type of error.</p>