Se mais alguém estiver tendo problemas na v5 do Sequelize , não é suficiente especificar uma chave primária no modelo 'através'.
Você precisa definir explicitamente a propriedade exclusiva no modelo direto.
User.belongsToMany(Product, { through: { model: UserProducts, unique: false } });
Product.belongsToMany(User, { through: { model: UserProducts, unique: false } });