I’m attempting to make a bot but when I try to show the user a modal, I get the following error:
ValidationError: Expected the value to be a string or number
I’m not sure why this happens, but here is the code which seems to be causing it:
await interaction2.showModal(
new ModalBuilder()
.setTitle("Create new field.")
.setCustomId("newtemplatefield")
.setComponents(
...[
new ActionRowBuilder<TextInputBuilder>().addComponents(
...[
new TextInputBuilder().setLabel("Field Name").setCustomId("fieldname").setRequired(true)
]
),
new ActionRowBuilder<TextInputBuilder>().addComponents(
...[
new TextInputBuilder()
.setLabel("Field Description")
.setCustomId("fielddesc")
.setRequired(true)
]
)
]
)
);
Advertisement
Answer
Discord.js error messages leave a lot to be desired, but the validation error is really a missing required part of the text input. You need to set the TextInputStyle with .setStyle(TextInputStyle.Short) or .setStyle(TextInputStyle.Paragraph)
Check out the sample modal in the Discord.js docs.