I'm making a bot on discord.js and using puppeeter. Everything starts and works fine on the local computer, but when I run the program on Heroku, the following errors are displayed to me:
2022-09-29T13:00:38.768690+00:00 app[worker.1]: file:///app/node_modules/puppeteer/lib/esm/puppeteer/node/BrowserRunner.js:269
2022-09-29T13:00:38.768714+00:00 app[worker.1]: reject(new Error([
2022-09-29T13:00:38.768715+00:00 app[worker.1]: ^
2022-09-29T13:00:38.768715+00:00 app[worker.1]:
2022-09-29T13:00:38.768716+00:00 app[worker.1]: Error: Failed to launch the browser process!
2022-09-29T13:00:38.768716+00:00 app[worker.1]: [21:21:0929/130038.700257:ERROR:ozone_platform_x11.cc(239)] Missing X server or $DISPLAY
2022-09-29T13:00:38.768717+00:00 app[worker.1]: [21:21:0929/130038.700327:ERROR:env.cc(255)] The platform failed to initialize. Exiting.
2022-09-29T13:00:38.768728+00:00 app[worker.1]: [0929/130038.730318:ERROR:nacl_helper_linux.cc(315)] NaCl helper process running without a sandbox!
2022-09-29T13:00:38.768729+00:00 app[worker.1]: Most likely you need to configure your SUID sandbox correctly
2022-09-29T13:00:38.768729+00:00 app[worker.1]:
2022-09-29T13:00:38.768730+00:00 app[worker.1]:
2022-09-29T13:00:38.768730+00:00 app[worker.1]: TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md
2022-09-29T13:00:38.768730+00:00 app[worker.1]:
2022-09-29T13:00:38.768731+00:00 app[worker.1]: at onClose (file:///app/node_modules/puppeteer/lib/esm/puppeteer/node/BrowserRunner.js:269:20)
2022-09-29T13:00:38.768736+00:00 app[worker.1]: at Interface.<anonymous> (file:///app/node_modules/puppeteer/lib/esm/puppeteer/node/BrowserRunner.js:257:24)
2022-09-29T13:00:38.768736+00:00 app[worker.1]: at Interface.emit (node:events:525:35)
2022-09-29T13:00:38.768737+00:00 app[worker.1]: at Interface.close (node:readline:590:8)
2022-09-29T13:00:38.768737+00:00 app[worker.1]: at Socket.onend (node:readline:280:10)
2022-09-29T13:00:38.768737+00:00 app[worker.1]: at Socket.emit (node:events:525:35)
2022-09-29T13:00:38.768738+00:00 app[worker.1]: at endReadableNT (node:internal/streams/readable:1358:12)
2022-09-29T13:00:38.768738+00:00 app[worker.1]: at processTicksAndRejections (node:internal/process/task_queues:83:21)
2022-09-29T13:00:39.469445+00:00 heroku[worker.1]: State changed from up to crashed
I want to make a page with my HTML and make a screenshot of it, which is uploaded to a separate folder. Here is my code that I am trying to run
import puppeteer from "puppeteer";
import createShipHtml from "../../modules/createShipHtml.js";
import findCurrentUser from "../../modules/findCurrentUser.js";
const sendShip=async (authorId, user, message)=>{
const {author, currentUser, selectedUser_id} = await findCurrentUser(authorId, user)
const authorAvatar = author.displayAvatarURL({size:1024,dynamic:true})
const userAvatar = currentUser.displayAvatarURL({size:1024,dynamic:true})
const number = Math.floor (Math.random () * (100 - 0 + 1)) + 0
const dom = createShipHtml(number, authorAvatar, userAvatar);
const browser = await puppeteer.launch({
headless: false,
defaultViewport: null,
args: ["--start-maximized","--no-sandbox", "--disable-setuid-sandbox"]
});
const page = await browser.newPage();//делаем страницу
await page.setContent(dom) //суем html
await page.setViewport({
width: 1920,
height: 1080
})
await page.screenshot({path: "static/imgs/example.png"});
browser.close()
}