ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked... Previous value: 'ngIf: false'. Current value: 'ngIf: true'

I have an angular 6 application. I am trying to load users from a backend. Here is my component typescript part:

 this.users$ = this.userSearchControl
  .valueChanges
  .debounceTime(200)
  .filter(q => q && q.length > 5)
  .switchMap(q => this.getUsers(q))
  .share();

And template part:

<div *ngIf="(users$ | async) as users" class="results">

  <ul class="list">
    <li *ngIf="users.length===0">
      <div class="no-results">
        <span>No orders found</span>
      </div>
    </li>
    <li *ngFor="let user of users" class="list-item">
      {{user.Name}}
    </li>
  </ul>
</div>

And I am getting an exception:

ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'ngIf: false'. Current value: 'ngIf: true'.

I have tried to play around ChangeTracker, and delay(0) but no success. Thanks for any assistance