🚨 Common Errors & Solutions

Common Errors & Solutions: Debugging BrowserStack errors is like hunting for a "call quality problem" in a cloud telephony system: you need to look not at where the sound is goin

Debugging BrowserStack errors is like hunting for a "call quality problem" in a cloud telephony system: you need to look not at where the sound is going but at the layers it passes through — PSTN, codec, bandwidth, then the receiver line. "I can just copy the error message and apply a fix — why is debugging complex?" Because `SessionNotCreatedException: Capabilities not matched` can come from four different causes: wrong browser name, unsupported OS/browser combination, misspelled device name, or invalid API credentials — they all produce the same error message. Applying the wrong fix to the wrong root cause solves nothing. In Java, RemoteWebDriver's `SessionNotFoundException` also appears in local Selenium Grid, but BrowserStack adds an extra layer: you need to open the session in the Dashboard and check the `Caps Validation` tab — that tab shows exactly which capability did not match and why. The most common QA mistake: writing `"deviceName": "Samsung Galaxy S23 Ultra"` instead of `"deviceName": "Samsung Galaxy S23"` — BrowserStack requires an exact match in the device list. Querying `GET /devices.json` to get the correct string eliminates this error entirely.

USERNAME or ACCESS_KEY entered incorrectly, or env variable could not be read.

os, osVersion, or browserVersion values are invalid. BrowserStack doesn't support all combinations.

Tried to run more parallel tests than the plan limit. Free plan offers only 1 parallel session.

Test didn't send any WebDriver command for 90 seconds. BS automatically terminated the session.

BrowserStack Local binary is not running while browserstackLocal: true capability is active.

Page load time differs on real device from local environment. Element is searched before it's loaded.

Builds on BS are deleted after 60 days by default. A reference is made to an old build.

Staging environment with self-signed certificate is marked as untrusted on the real device.

🎬 SessionNotCreatedException: Which Capability Didn't Match?

"os": "MacOS" (wrong)

"os": "OS X" (correct)

The capabilities are written with "os": "MacOS" — intuitively it looks right, but it isn't the exact string BrowserStack expects.

The request reaches the Hub — the Hub compares the incoming "os" value against its supported device list as an EXACT MATCH.