use request instead of needle which may lost response