qeeqbox/social-analyzer · warning
Driver Session Issue
Error message
Driver Session Issue
What it means
In find_username_site (modules/slow-scan.js:186), 'Driver Session Issue' is logged when the generic slow-scan's error path calls await driver.quit() and that call rejects. The message means the Selenium session was already invalid at cleanup time; the underlying scan error is swallowed and the promise resolves undefined.
Source
Thrown at modules/slow-scan.js:186
resolve(temp_profile)
} else if (temp_profile.image !== '') {
temp_profile.username = username
temp_profile.text = 'unavailable'
temp_profile.title = 'unavailable'
temp_profile.language = 'unavailable'
temp_profile.rate = '%00.0'
temp_profile.link = site.url.replace('{username}', username)
temp_profile.type = site.type
resolve(temp_profile)
} else {
resolve(undefined)
}
} catch (err) {
if (driver !== undefined) {
try {
await driver.quit()
} catch (err) {
helper.verbose && console.log('Driver Session Issue')
}
}
resolve(undefined)
}
} else {
resolve(undefined)
}
})
}
export default{
find_username_advanced
}
View on GitHub (pinned to 1ba0905e00)
Solutions
- Enable verbose logging earlier to capture the original per-site scan error
- Recreate a fresh driver per site or on failure instead of reusing a possibly-dead session
- Align chromedriver version with the browser; add headless and --disable-dev-shm-usage flags in CI
- Treat undefined result as scan failure and retry the site with a longer timeout
Example fix
// before
try { await driver.quit() } catch (err) {
helper.verbose && console.log('Driver Session Issue')
}
resolve(undefined)
// after
try { await driver.quit() } catch (quitErr) {
helper.verbose && console.log('Driver Session Issue:', quitErr && quitErr.message)
}
resolve(undefined) Defensive patterns
Strategy: retry
Validate before calling
const session = await driver.getSession().catch(() => null)
if (!session) {
driver = await new Builder().forBrowser('chrome').build()
} Type guard
function isDriverAlive(driver) {
return driver !== undefined && typeof driver.quit === 'function'
} Try / catch
let result
for (let attempt = 0; attempt < 2 && result === undefined; attempt++) {
try {
result = await find_username_site(driver, url)
} catch (scanErr) {
console.error('scan failed:', scanErr)
if (driver !== undefined) {
try { await driver.quit() } catch (quitErr) {
console.warn('Driver Session Issue:', quitErr && quitErr.message)
}
driver = await new Builder().forBrowser('chrome').build() // fresh session for retry
}
}
} Prevention
- Retry undefined results with a fresh driver rather than reusing a dead session
- Set generous page-load timeouts since slow-scan targets are inherently slow sites
- Log the original error before cleanup so root causes are not swallowed
- Keep driver/browser versions aligned and use headless flags in CI to avoid crashes
When it happens
Trigger: A site scan in the slow-scan loop throws (timeout, navigation error, missing element, browser crash); the catch block runs with driver defined; driver.quit() fails because the session is gone; helper.verbose is on.
Common situations: Slow sites exceeding driver page-load timeouts; driver/browser version mismatch; Chrome crashing under memory pressure during many sequential scans; session ended earlier by browser exit; CI containers without a display.
Related errors
AI-assisted analysis of qeeqbox/social-analyzer@1ba0905e00 (2026-08-31).
Data as JSON: /api/errors/996fcfc5cc7ca49a.
Report an issue: GitHub.