Есть код:
class CurlAny extends BaseObject
{
    protected $_ch;
    
    protected $_timeout = 10;
    
    public function __construct(array $config = [])
    {
        $this->_ch = curl_init();
        parent::__construct($config);
    }
    
    public function send()
    {
        $this->_query('test.com', ['key' => 'value']);
    }
    
    private function _query(string $url, $data = false)
    {
        if (!$this->_ch) {
            throw new Exception('Empty $_ch in MtargetOffers.');
        }
        curl_setopt($this->_ch, CURLOPT_URL, $url);
        curl_setopt($this->_ch, CURLOPT_HEADER, false);
        curl_setopt($this->_ch, CURLOPT_TIMEOUT, $this->_timeout);
        curl_setopt($this->_ch, CURLOPT_NOBODY, 0);
        curl_setopt($this->_ch, CURLOPT_RETURNTRANSFER, true);
        if ($data) {
            curl_setopt($this->_ch, CURLOPT_POST, true);
            curl_setopt($this->_ch, CURLOPT_HTTPHEADER, [
                'Expect:',
            ]);
            curl_setopt($this->_ch, CURLOPT_POSTFIELDS, http_build_query($data));
        } else {
            throw new Exception('Пустые данные на нашей стороне', 500);
        }
        $page = curl_exec($this->_ch);
        $info = curl_getinfo($this->_ch);
        $err = curl_errno($this->_ch);
        $errmsg = curl_error($this->_ch);
        if ($this->_ch) {
            curl_close($this->_ch);
        }
        
        return $page;
    }
}
Код немного упрощен, но передано самое важное. Используется Yii2 на PHP 7.3
Время от времени отлавливаю такую ошибку 
curl_setopt(): supplied resource is not a valid cURL handle resource
В чем может быть причина? Разве не достаточно проверки 
if (!$this->_ch) {...}?
P.S. На ~10000 запросов (с полной инициализацией данного объекта для каждого запроса) приходится 2-3 шт. указанной ошибки.