I am currently experimenting with the Angular AsyncPipe in combination with ngIf. The observable in production comes from the HttpService, it is extended with a retry strategie for error handling.
The template looks like this:
<div *ngIf="(configuration$ | async) as configuration; else loading">
<p>{{configuration}}</p>
</div>
<ng-template #loading>
<p>Loading...</p>
</ng-template>
The retry strategie uses a dialog for the error and after the dialog is dimissed, the observable should be rerun.
If no error occurs the template is loading properly and everything works just fine. However, after the error occurs only one in the beginning and the user dismisses the dialog to start a retry the value is not properly shown in the template.
I included an example as well.
In the example I mock the HttpService from Angular to show the behaviour.