title: Instead of creating an Embed, my function goes to the first catch and sends the message in error. (Doom Pyramid)
body: <p>I have been trying to create a character creation command for my discord bot, having the bot take each reply and save them as variables which I callback into an embed. Currently everything works, minus it not all being in dms, except for creating the embed. After it gets the final message and is suppose to create an embed and schema with the information it goes to the first catch and send the message: "You did not supply an inventory in the allotted time."</p>
  
  <p>I've rewritten it a few times to attempt to correct this and have no errors in my logs. Help will be appreciated.</p>
  
  <pre><code>const Discord = require("discord.js");
  const Character = require("../models/character.js");
  const mongoose = require("mongoose");
  
  module.exports.run = async (bot, message, args) =&gt; {
    mongoose.connect("mongodb+srv:", {
      useNewUrlParser: true
    });
  
    await message.delete();
    const filter = m =&gt; m.author.id === message.author.id;
    let cUser = message.author;
    cUser.send("Please enter you character name. This will expire in one minute. You may cancel the process at anytime by typing cancel.");
  
    message.channel.awaitMessages(filter, {max: 1, time: 60000}).then(collected =&gt; {
      if(collected.first().content === "cancel"){
        return message.reply("Canceled!");
      }
  
  
      let cName = collected.first().content;
      message.reply(`Your characters name is ${collected.first().content}. What is their gender?`);
      message.channel.awaitMessages(filter, {max: 1, time: 60000}).then(collected =&gt; {
        if(collected.first().content === "cancel"){
          return message.reply("Canceled!");
        }
  
  
        let cGender = collected.first().content;
        message.reply(`Your characters gender is ${collected.first().content}. What is their race?`);
        message.channel.awaitMessages(filter, {max: 1, time: 60000}).then(collected =&gt; {
          if(collected.first().content === "cancel"){
            return message.reply("Canceled!");
          }
  
  
          let cRace = collected.first().content;
          message.reply(`Your characters race is ${collected.first().content}. What is their age?`);
          message.channel.awaitMessages(filter, {max: 1, time: 60000}).then(collected =&gt; {
            if(collected.first().content === "cancel"){
              return message.reply("Canceled!");
            }
  
  
            let cAge = collected.first().content
            message.reply(`Your characters age is ${collected.first().content}. Now describe how they look so everyone knows how to interact with them. Be detailed, include hair and eye color along with skintone. Hair length will also help. if you need help do look at the approved applications for guidance. You have half an hour to complete this section. Save your work!`);
            message.channel.awaitMessages(filter, {max: 1, time: 1800000}).then(collected =&gt; {
              if(collected.first().content === "cancel"){
                return message.reply("Canceled!");
              }
  
  
              let cDescription = collected.first().content;
              message.reply(`Your character description is as follows; ${collected.first().content}. What is in their visible inventory? You have five minutes. Nothing outrageous, your character has just started their journey. Unless otherwise stated, apped, they have very basic gear.`);
              message.channel.awaitMessages(filter, {max: 1, time: 600000}).then(collected =&gt; {
                if(collected.first().content === "cancel"){
                  return message.reply("Canceled!");
                }
                message.reply(`Your characters public inventory is as follows; ${collected.first().content}. The following will be sent to an admin to be approved. Once approved you will see your character in the character-sheet channel and be able to interact with the world! Good luck and have fun!`);
  
                console.log(err);
  
                let cInventory = collected.first().content;
                let characterEmbed = new Discord.RichEmbed()
                .setDescription("Character")
                .setColor("#632bdb")
                .addField("Character Name", cName)
                .addField("Character Owner", cUser)
                .addField("Race", cRace)
                .addField("Gender", cGender)
                .addField("Age", cAge)
                .addField("Character Description", cDescription)
                .addField("Public Inventory", cInventory);
  
                let applicationchannel = message.guild.channels.find(`name`, "character-sheets-needing-approval");
                if(!applicationchannel) return message.channel.send("There was a problem sending in your character. Please DM an admin with the embed above so they can help you and let them know there is a problem with the system.");
  
                applicationchannel.send(characterEmbed);
  
                // return;
  
                const character = new Report({
                  _id: mongoose.Types.ObjectId(),
                  username: cUser.user.username,
                  userId: cUser.id,
                  characterName: cName,
                  race: cRace,
                  age: cAge,
                  gender: cGender,
                  characterDescription: cDescription,
                  Inventory: cInventory
                });
  
                character.save()
                .then(result =&gt; console.log(result))
                .catch(err =&gt; console.log(err));
  
                return message.reply("Your character has been saved to the database!");
  
              }).catch(err =&gt; {
                message.reply("You did not supply an inventory in the alloted time. Please start again.")
              })
  
            }).catch(err =&gt; {
              message.reply("You did not supply a character description in the alloted time. Please start again.")
            })
  
          }).catch(err =&gt; {
            message.reply("You did not supply an age in the alloted time. Please start again.")
          })
  
        }).catch(err =&gt; {
          message.reply("You did not supply a race in the alloted time. Please start again.")
        })
  
      }).catch(err =&gt; {
        message.reply("You did not supply a gender in the alloted time. Please start again.")
      })
  
    }).catch(err =&gt; {
      cUser.send("You did not supply a name in the alloted time. Please try again.")
    })
    sheets");
  }
  module.exports.help = {
    name: "ccharacter"
  }
  </code></pre>
  
  <p>I expect for an embed to get created and sent to the appropriate channels but all I get is a catch message being sent.</p>
  
  <p>Edit: I do not get any errors, it does save user input and responds back with it each time, even in the end. However, after inventory it responds with two messages and doesn't create an embed and thus not saving any characters sadly. It works correctly (at least I'm assuming so) until after you post your inventory. </p>
  
  <p><img src="https://i.gyazo.com/72bf16a6130f91e0e1072b1a37d86357.png" alt="Response image"></p>