diff --git a/lib/_tls_wrap.js b/lib/_tls_wrap.js index 57399c602a10bb..6db61991f50ef5 100644 --- a/lib/_tls_wrap.js +++ b/lib/_tls_wrap.js @@ -408,8 +408,10 @@ function onocspresponse(resp) { function onerror(err) { const owner = this[owner_symbol]; debug('%s onerror %s had? %j', - owner._tlsOptions.isServer ? 'server' : 'client', err, - owner._hadError); + (typeof owner._tlsOptions === 'object' && owner._tlsOptions !== null) ? + owner._tlsOptions.isServer ? 'server' : 'client' : + 'unknown', + err, owner._hadError); if (owner._hadError) return; @@ -421,7 +423,7 @@ function onerror(err) { // When handshake fails control is not yet released, // so self._tlsError will return null instead of actual error owner.destroy(err); - } else if (owner._tlsOptions.isServer && + } else if (owner._tlsOptions?.isServer && owner._rejectUnauthorized && RegExpPrototypeTest(/peer did not return a certificate/, err.message)) {