if the answer is received before timeout we return it
if the answer is not received before timeout we return an error with the received and expected answer