diff --git a/src/cdk/portal/dom-portal-outlet.ts b/src/cdk/portal/dom-portal-outlet.ts index 1c473e24f872..168793b1a288 100644 --- a/src/cdk/portal/dom-portal-outlet.ts +++ b/src/cdk/portal/dom-portal-outlet.ts @@ -87,7 +87,11 @@ export class DomPortalOutlet extends BasePortalOutlet { ); this._appRef!.attachView(componentRef.hostView); this.setDisposeFn(() => { - this._appRef!.detachView(componentRef.hostView); + // Verify that the ApplicationRef has registered views before trying to detach a host view. + // This check also protects the `detachView` from being called on a destroyed ApplicationRef. + if (this._appRef!.viewCount > 0) { + this._appRef!.detachView(componentRef.hostView); + } componentRef.destroy(); }); }