Sequelize - Validation Error: Validation Not Failed
The other day, I was running some Node.js integration tests when I suddenly started seeing the most confusing Sequelize error: "Validation error: Validation not failed". If you have no idea what is causing this error, the message appears to be contradictory on its face - the validation is failing because the validation did not fail. I was befuddled:
To debug this, I started going through the git-log to see what had changed. I discovered that one of my teammates had added a "validate" property to one of the Sequelize Model Schemas:
sequelize.define(
"Thing",
{
name: {
type: DataTypes.STRING,
allowNull: false,
validate: {
not: [ /\\|\/|:|\?|\*|<|>|"|\||[\x00-\x1F\x7F-\x9F]/g ]
}
},
// ...
},
{
tableName: 'thing'
}
)
Ahhhh! Notice that there's a validation rule named "not". As in, "Validation NOT failed." So, the error was legitimate; my POST contained data that was matching the Regular Expression defined in the "not" rule. It's just very confusing verbiage (especially when I didn't realize that the Schema had validation rules attached to it).
When I ran across this Sequelize error, I went to Google and Google was no help. So, this post is mostly here to help anyone else who runs into this confusing error and tries to search for some answers.
Want to use code from this post? Check out the license.
Reader Comments