Repository: angular
Issue: Change detection is not triggered by an Observable whose values are emitted from an ErrorHandler
Labels: type: bug/fix,freq2: medium,area: core,core: change detection,core: error handling,P3

<!--
PLEASE HELP US PROCESS GITHUB ISSUES FASTER BY PROVIDING THE FOLLOWING INFORMATION.

ISSUES MISSING IMPORTANT INFORMATION MIGHT BE CLOSED WITHOUT INVESTIGATION.
-->

## I'm submitting a ...
<!-- Check one of the following options with "x" -->
<pre><code>
[ ] Regression (behavior that used to work and stopped working in a new release)
[x] Bug report <!-- Please search github for a similar issue or PR before submitting -->
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request => Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question
</code></pre>

## Current behavior
<!-- Describe how the issue manifests. -->
Component change detection is not triggered when connecting an AsyncPipe to an RxJS Observable whose values are emitted asynchronously from a custom ErrorHandler.

## Expected behavior
<!-- Describe what the desired behavior would be. -->
Component change detection is triggered and the component is updated with the value emitted in the Observable.

## Minimal reproduction of the problem with instructions
<!--
For bug reports please provide the *STEPS TO REPRODUCE* and if possible a *MINIMAL DEMO* of the problem via
https://plnkr.co or similar (you can use this template as a starting point: http://plnkr.co/edit/tpl:AvJOMERrnz94ekVua0u5).
-->
See this [plunker](https://plnkr.co/edit/1ZtlP31v6QWc0yNqeEP3).

1. Open the console to see some debug log. 
2. Click on <kbd>Do an async error</kbd> button to make an HTTP call that results in an error.
3. Look at the console.
    - `MyErrorHandler emit "oups" in the subject` tells us that the error is correctly catch by the error handler.
    - `DisconnectedAlertComponent receives an error from the service: oups` tells us that the component listening on the observable correctly receive the error.
4. But the `<p>{{ error$ | async }}</p>` is not updated and _**oups**_ is not written in the DOM.
5. Click on <kbd>Clic me to perform a user action and trigger the change detection</kbd> button to perfom a simple user interaction that trigger the change detection.
6. `<p>{{ error$ | async }}</p>` is updated and _**oups**_ is written in the DOM

## What is the motivation / use case for changing the behavior?
<!-- Describe the motivation or the concrete use case. -->
I am trying to detect when my backend API isn't reachable, and emit some HTTP error. A custom error handler listen for that kind of error, and emit the error inside the observable of a global service. A popup component is listening on this observable to display the error when it occurs.

## Please tell us about your environment

<pre><code>
Angular version: 4.2.4
<!-- Check whether this is still an issue in the most recent Angular version -->

Browser:
- [x] Chrome (desktop) version 59
- [ ] Chrome (Android) version XX
- [ ] Chrome (iOS) version XX
- [x] Firefox version 54
- [ ] Safari (desktop) version XX
- [ ] Safari (iOS) version XX
- [ ] IE version XX
- [ ] Edge version XX
 
For Tooling issues:
- Node version: 8.1.2 <!-- use `node --version` -->
- Platform: Windows 10, Linux Xubuntu<!-- Mac, Linux, Windows -->

Others:
<!-- Anything else relevant?  Operating system version, IDE, package manager, HTTP server, ... -->
- NPM version: 5
- Angular CLI version: 1.1.3
- ZoneJS version: 0.8.12
</code></pre>