title: Why is sink never called in my combine pipeline?
body: <p>Here is my pipeline:</p>
  
  <pre><code>URLSession.shared
        .dataTaskPublisher(for: urlRequest)
        .map { $0.data }
        .mapError { ...... }
        .eraseToAnyPublisher()
        .decode(type: MyObject.self, decoder: JSONDecoder())
        .receive(on: RunLoop.main)
        .catch { [weak self] error -&gt; Just&lt;MyObject&gt; in
          guard let self = self else { return Just(emptyPayload) }
          self.hasError = true
          return Just(emptyPayload)
      }
      .sink(
        receiveCompletion: { [weak self] _ in
          print("i'm here")
        },
        receiveValue: { [weak self] value in
          print("value")
        }
      )
  </code></pre>
  
  <p>Why is sink never called?</p>