Browserless Proxy Launch URLs: Avoid Double-Encoding the launch Parameter
Use the self-hosted endpoint's launch interface; hosted externalProxyServer is another service feature.
const endpoint = new URL(browserlessWebSocketEndpoint);
endpoint.searchParams.set('token', browserlessToken);
endpoint.searchParams.set('launch', JSON.stringify({
args: ['--proxy-server=http://proxy.example:8080'],
}));
const browser = await puppeteer.connect({
browserWSEndpoint: endpoint.toString(),
});Use the supplied ws/wss deployment endpoint and token. The browser host must reach the HTTP listener; that token authenticates the control connection. A candidate from the HTTP proxy list can fill the unauthenticated launch flag for permitted public browsing.
JSON.stringify serializes the launch object, then URLSearchParams encodes it for the URL. Passing pre-encodeURIComponent text into searchParams encodes its percent signs again.
This unauthenticated flag does not carry Chromium username/password credentials. Use supported challenge handling when needed.
A hosted externalProxyServer integration is not an identically named launch-object field on every self-hosted image. Match deployment, image version and selected API before diagnosing the account.