Skip to content
Advertisement

heroku and nodejs erorr (Web process failed to bind to $PORT within 60 seconds of launch)

I am using discord.js and I have a code where if someone votes for my bot on https://top.gg the bot will send a message, but it got this error

Web process failed to bind to $PORT within 60 seconds of launch

Here is my code:

const Discord = require('discord.js')
const bot = new Discord.Client();

const DBL = require('dblapi.js');
const dbl = new DBL(process.env.DBTOKEN, { webhookPort: 5000, webhookAuth: 'password' }, bot)
dbl.webhook.on('ready', hook => {
    console.log(`Webhook running at http://${hook.hostname}:${hook.port}${hook.path}`);
  });

dbl.webhook.on('vote', vote => {
  let embed = new Discord.MessageEmbed()
  .setTitle('A user just upvoted!')
  .setDescription(`Thank you **${vote.user.tag}** for voting me!`)
  .setColor('FF000')
  .setThumbnail(vote.user.displayAvatarURL())
  let votechannel = bot.channels.cache.find(x => x.id === '775360008786280468')
  votechannel.send(embed)
})

Please help me that would be very appreciated

Advertisement

Answer

Heroku changes the Port that runs Node Application from time to time. Try changing your webhook port to process.env.PORT. Check the code below.

const Discord = require('discord.js')
const bot = new Discord.Client();

const DBL = require('dblapi.js');
const dbl = new DBL(process.env.DBTOKEN, { webhookPort: process.env.PORT || 5000, webhookAuth: 'password' }, bot)
dbl.webhook.on('ready', hook => {
    console.log(`Webhook running at http://${hook.hostname}:${hook.port}${hook.path}`);
  });

dbl.webhook.on('vote', vote => {
  let embed = new Discord.MessageEmbed()
  .setTitle('A user just upvoted!')
  .setDescription(`Thank you **${vote.user.tag}** for voting me!`)
  .setColor('FF000')
  .setThumbnail(vote.user.displayAvatarURL())
  let votechannel = bot.channels.cache.find(x => x.id === '775360008786280468')
  votechannel.send(embed)
})
User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement