fix observer blocking