В общем все ясно. У меня был таймаут в 10 секунд, а между открытием соединения и выполнением запроса, из-за которого была ошибка, проходило больше времени, т.к. перед запросом была функция, которая выполнялась около 15 секунд. В итоге я начал открывать соединение после этой функции и ошибка пропала.