fixed: handler drain callback called multiple times