R
Railway•3mo ago
eddie

browserless (puppeteer) issues

project id: 168b11d7-f1cd-4066-91c0-fd9530f55259 i have a headless puppeteer project and am trying to switch over to browserless (v2) having issues when swapping the code:
//const browser = await puppeteer.launch({ headless: true });
const browser = await puppeteer.connect({ browserWSEndpoint: process.env.BROWSER_WS_ENDPOINT });
//const browser = await puppeteer.launch({ headless: true });
const browser = await puppeteer.connect({ browserWSEndpoint: process.env.BROWSER_WS_ENDPOINT });
received error on the puppeteeer.connect call:
'Unexpected server response: 404'
'Unexpected server response: 404'
confirmed the BROWSER_WS_ENDPOINT is correct (i even copied the wss: directly in case the env vars weren't passing thru)
Solution:
@bonky - template has been fixed, please hard refresh your browser before you deploy the template again
Jump to solution
23 Replies
Percy
Percy•3mo ago
Project ID: 168b11d7-f1cd-4066-91c0-fd9530f55259
eddie
eddieOP•3mo ago
i followed the example here: https://github.com/brody192/puppeteer-example basically just replaced puppeteer.launch with connect, but seems to have issues i had it running successfully with headless locally, but tried to convert to browserless to make it workable with railway, but getting this 404 error i tried running your example @Brody and having the same exact error "Unexpected server response: 404" on the puppeteer.connect call, using this simple example:
const puppeteer = require('puppeteer');
const path = require('path');

var screenshotsDir = './temp';

async function run() {
const browser = await puppeteer.connect({ browserWSEndpoint: process.env.BROWSER_WS_ENDPOINT }); // <---- crash here with "404" error
const page = await browser.newPage();
await page.goto("https://example.com/");
await page.screenshot({ path: path.join(screenshotsDir, 'screenshot.png') });
await browser.close();
}

run().catch(console.error);
const puppeteer = require('puppeteer');
const path = require('path');

var screenshotsDir = './temp';

async function run() {
const browser = await puppeteer.connect({ browserWSEndpoint: process.env.BROWSER_WS_ENDPOINT }); // <---- crash here with "404" error
const page = await browser.newPage();
await page.goto("https://example.com/");
await page.screenshot({ path: path.join(screenshotsDir, 'screenshot.png') });
await browser.close();
}

run().catch(console.error);
Brody
Brody•3mo ago
yep I am aware of the issue and will be fixing it when I'm back from PTO
eddie
eddieOP•3mo ago
opps sorry to bother didnt know u were on PTO, when u get back?
Brody
Brody•3mo ago
this Friday, so I should be fixed saturday at the minimum
eddie
eddieOP•3mo ago
great thank u, enjoy the rest of your pto
Brody
Brody•3mo ago
thank you!
Solution
Brody
Brody•3mo ago
@bonky - template has been fixed, please hard refresh your browser before you deploy the template again
eddie
eddieOP•3mo ago
i am still getting 404, what dou mean by hard refresh? i tried redeploying
eddie
eddieOP•3mo ago
i tried redeploying the Browserless app, is that what u mean?
No description
Brody
Brody•3mo ago
you need to redeploy the template not your pre existing deployment
eddie
eddieOP•3mo ago
like create from scratch? ah okay gotcha
Brody
Brody•3mo ago
correct, delete that and deploy the template again and a hard refresh is a key combo that refreshes the page without cache
eddie
eddieOP•3mo ago
do i do v2 or v1?
eddie
eddieOP•3mo ago
GitHub
GitHub - railwayapp-templates/browserless-v2: Deploy Browserless on...
Deploy Browserless on Railway. Web browser automation built for everyone, and loved by developers. - railwayapp-templates/browserless-v2
Brody
Brody•3mo ago
up to you, v2 dropped support for selenium iirc
eddie
eddieOP•3mo ago
thank u it worked! everything is good now :thumbs: appreciate your help
Brody
Brody•3mo ago
awsome!
Brody
Brody•3mo ago
i also have this for testing going forward
No description
eddie
eddieOP•3mo ago
this is awesome~ dumb question -- how do i expose the railway URL of a project as an env variable? how does it know its own url? how does browserless expose its own url as env var: wss://browserless-production-823f.up.railway.app
Brody
Brody•3mo ago
not a dumb question, it uses the reference variable RAILWAY_PUBLIC_DOMAIN you can view the raw editor to see how it's all pieced together. docs here - https://docs.railway.app/reference/variables#railway-provided-variables
eddie
eddieOP•3mo ago
perfect thank you! great service, as always. loyal customer since 2021 :salute: please close this thread, issue resolved
Brody
Brody•3mo ago
sounds good! happy to help 🙂
Want results from more Discord servers?
Add your server