@viper Write more details about what we are talking about
You paid for the FingerprintSwitcher key but it doesn't work?
[Bug] plugin.fetch() always fails with Json parse error : illegal value
-
Plugin: playwright-with-fingerprints 1.6.3 (also reproduces via browser-with-fingerprints 1.7.1 directly) OS: Windows 10 (build 26200.9168), 64-bit Node: v24.19.0 Engine: FingerprintPluginV10, engversion=27.8.1, hash=e32746d4db1a7850311cd0b1520e2dbf2ffba136 (from https://bablosoft.com/scripts/FingerprintPluginV10/properties) Engine bundled browsers (fp_engine/run/FingerprintPluginV10/<hash>/browser_versions.json): only 127.0.6533.73 (id 16) and 128.0.6613.85 (id 17) — while the README of browser-with-fingerprints states "Current supported engine version - 146.0.7680.80" Service key: paid (valid); account IP whitelist is configured and the current outbound IP matches it (verified via api.ipify.org from the same machine) Location: China (Asia/Shanghai) — direct connection to bablosoft.com works but is slow/flaky (7–30 s response times, occasional connect failures)
Problem
plugin.fetch() (with or without a key) always fails with Json parse error : illegal value. It has never succeeded on this machine. The error is reported by the engine (BAS script api_fetch) through bas-remote-node:[ENGINE_MSG] {"async":false,"data":{"text":"Json parse error : illegal value"},"id":0,"type":"message"}
FETCH_FAIL in 31.6s | Json parse error : illegal value
Stack (bas-remote-node):Error: Json parse error : illegal value
at SocketService.<anonymous> (node_modules/bas-remote-node/src/index.js:46:26)
at SocketService.emit (node:events:530:35)
at SocketService.<anonymous> (node_modules/bas-remote-node/src/services/socket.js:37:16)
Minimal reproductionconst { plugin } = require('playwright-with-fingerprints');
(async () => {
plugin.setServiceKey('<KEY>');
plugin.setWorkingFolder('./fp_engine');
plugin.setRequestTimeout(999999999); // timeout disabled — does not help
const fp = await plugin.fetch({ tags: ['Microsoft Windows', 'Chrome'] });
console.log('FETCH_OK', fp);
})().catch((e) => { console.error(e.message); process.exit(1); });
Result: engine starts fine, then api_fetch fails with Json parse error : illegal value after 9–49 s (varies).What we already verified
The engine itself works — client.start() succeeds, FastExecuteScript.exe starts, WebSocket control channel is fine. Only api_fetch fails.
api_fetch connects to bablosoft.com:443 — confirmed by running the engine through a local logging CONNECT proxy (the engine honors the HTTPS_PROXY env var, proven by the error Server error : Failed to connect to 127.0.0.1 port 8899 when the proxy was down).
TLS handshake succeeds — through the logging proxy we see the full encrypted exchange (ClientHello → ServerHello/cert → application data). The failure is at the HTTP/JSON layer: the response body to api_fetch is not valid JSON (empty or HTML/error page), so the BAS script throws the parse error.
The same machine can reach the same server fine with other clients:
curl https://bablosoft.com/scripts/FingerprintPluginV10/properties → 200 OK + valid JSON {"success":true,"free":true,"hash":"e32746...","engversion":"27.8.1","v":"10"} (took 7–22 s)
Direct Node tls/https GET to the same URL → 200 OK, valid JSON
Regular Chrome browser loads it in a few seconds
setRequestTimeout(0) / huge value does NOT fix it — the error is a parse error, not a timeout.
Network to bablosoft.com from this location is slow and unstable (10–30 s response times, frequent HTTP 000 connect failures, then success on retry). fp.bablosoft.com is similarly slow (~16 s server response in browser).
Related issues we found
https://github.com/bablosoft/puppeteer-with-fingerprints/issues/137 — "syntaxError: .. is not valid JSON": bablosoft server returned 403 Forbidden HTML (nginx/1.18.0) causing the exact same JSON-parse failure. It was a server-side problem + fixed by updating the npm module/engine.
https://github.com/bablosoft/playwright-with-fingerprints/issues/54 — same 403/HTML issue for older engine versions; "the problem with the servers has been resolved... but I still recommend updating to the latest version".
Our symptom looks identical, but it persists for us (started 2026-08-16, still failing on 2026-08-25) and updating the npm packages did not change anything (still 1.6.3/1.7.1, engine still 27.8.1).Questions / help needed
Is engine 27.8.1 (with bundled browsers 127/128) outdated? The properties endpoint returns engversion: 27.8.1 for us, but the repo README says the current engine is browser 146.0.7680.80. How do we force re-download of the newest engine package? (npm i re-install did not change the downloaded engine.)
What does the server actually return to api_fetch? Can we see the raw HTTP response (or is there a documented endpoint to fetch a fingerprint directly, e.g. a REST call with the key, so we can debug without the engine)?
Any known server-side restrictions by region/IP that return non-JSON (403/HTML) for api_fetch from certain countries? Our outbound IP is whitelisted in the account.
If it is a server-side issue on your end, is it still ongoing (2026-08-25)?
Happy to provide full logs, the local proxy trace, or run any additional tests you suggest. -
@isabelleneyland There is no option for users to update the engine themselves. It can only be updated by the developer