<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[Bug] plugin.fetch() always fails with Json parse error : illegal value]]></title><description><![CDATA[<p dir="auto">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 <a href="https://bablosoft.com/scripts/FingerprintPluginV10/properties" rel="nofollow ugc">https://bablosoft.com/scripts/FingerprintPluginV10/properties</a>) Engine bundled browsers (fp_engine/run/FingerprintPluginV10/&lt;hash&gt;/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 <a href="http://api.ipify.org" rel="nofollow ugc">api.ipify.org</a> from the same machine) Location: China (Asia/Shanghai) — direct connection to <a href="http://bablosoft.com" rel="nofollow ugc">bablosoft.com</a> works but is slow/flaky (7–30 s response times, occasional connect failures)</p>
<p dir="auto">Problem<br />
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:</p>
<p dir="auto">[ENGINE_MSG] {"async":false,"data":{"text":"Json parse error : illegal value"},"id":0,"type":"message"}<br />
FETCH_FAIL in 31.6s | Json parse error : illegal value<br />
Stack (bas-remote-node):</p>
<p dir="auto">Error: Json parse error : illegal value<br />
at SocketService.&lt;anonymous&gt; (node_modules/bas-remote-node/src/index.js:46:26)<br />
at SocketService.emit (node:events:530:35)<br />
at SocketService.&lt;anonymous&gt; (node_modules/bas-remote-node/src/services/socket.js:37:16)<br />
Minimal reproduction</p>
<p dir="auto">const { plugin } = require('playwright-with-fingerprints');</p>
<p dir="auto">(async () =&gt; {<br />
plugin.setServiceKey('&lt;KEY&gt;');<br />
plugin.setWorkingFolder('./fp_engine');<br />
plugin.setRequestTimeout(999999999); // timeout disabled — does not help<br />
const fp = await plugin.fetch({ tags: ['Microsoft Windows', 'Chrome'] });<br />
console.log('FETCH_OK', fp);<br />
})().catch((e) =&gt; { console.error(e.message); process.exit(1); });<br />
Result: engine starts fine, then api_fetch fails with Json parse error : illegal value after 9–49 s (varies).</p>
<p dir="auto">What we already verified<br />
The engine itself works — client.start() succeeds, FastExecuteScript.exe starts, WebSocket control channel is fine. Only api_fetch fails.<br />
api_fetch connects to <a href="http://bablosoft.com:443" rel="nofollow ugc">bablosoft.com:443</a> — 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).<br />
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.<br />
The same machine can reach the same server fine with other clients:<br />
curl <a href="https://bablosoft.com/scripts/FingerprintPluginV10/properties" rel="nofollow ugc">https://bablosoft.com/scripts/FingerprintPluginV10/properties</a> → 200 OK + valid JSON {"success":true,"free":true,"hash":"e32746...","engversion":"27.8.1","v":"10"} (took 7–22 s)<br />
Direct Node tls/https GET to the same URL → 200 OK, valid JSON<br />
Regular Chrome browser loads it in a few seconds<br />
setRequestTimeout(0) / huge value does NOT fix it — the error is a parse error, not a timeout.<br />
Network to <a href="http://bablosoft.com" rel="nofollow ugc">bablosoft.com</a> from this location is slow and unstable (10–30 s response times, frequent HTTP 000 connect failures, then success on retry). <a href="http://fp.bablosoft.com" rel="nofollow ugc">fp.bablosoft.com</a> is similarly slow (~16 s server response in browser).<br />
Related issues we found<br />
<a href="https://github.com/bablosoft/puppeteer-with-fingerprints/issues/137" rel="nofollow ugc">https://github.com/bablosoft/puppeteer-with-fingerprints/issues/137</a> — "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.<br />
<a href="https://github.com/bablosoft/playwright-with-fingerprints/issues/54" rel="nofollow ugc">https://github.com/bablosoft/playwright-with-fingerprints/issues/54</a> — 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".<br />
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).</p>
<p dir="auto">Questions / help needed<br />
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.)<br />
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)?<br />
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.<br />
If it is a server-side issue on your end, is it still ongoing (2026-08-25)?<br />
Happy to provide full logs, the local proxy trace, or run any additional tests you suggest.</p>
]]></description><link>http://community.bablosoft.com/topic/32467/bug-plugin-fetch-always-fails-with-json-parse-error-illegal-value</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 06:08:34 GMT</lastBuildDate><atom:link href="http://community.bablosoft.com/topic/32467.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Aug 2026 08:56:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Bug] plugin.fetch() always fails with Json parse error : illegal value on Tue, 25 Aug 2026 10:38:26 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.bablosoft.com/uid/26178">@isabelleneyland</a> There is no option for users to update the engine themselves. It can only be updated by the developer</p>
]]></description><link>http://community.bablosoft.com/post/205557</link><guid isPermaLink="true">http://community.bablosoft.com/post/205557</guid><dc:creator><![CDATA[Roy Mustang]]></dc:creator><pubDate>Tue, 25 Aug 2026 10:38:26 GMT</pubDate></item></channel></rss>