Link error updating original material via code

My plugin button creates material expression nodes and connects them. All i’ve left to do is update my original material with FMaterialEditor::UpdateOriginalMaterial() method. But i getting link 2019 error. However, if i call CloseWindow(), it prompts to save edits, whitch calls the same FMaterialEditor::UpdateOriginalMaterial() and it works. I guess something wrong with my build.cs or includes? What did i forgot to do?

p.s. I did not edit build.cs at all. Please, help

#include "ModuleManager.h"
#include "SlateBasics.h"
#include "SlateExtras.h"
#include "FixMaterialsStyle.h"
#include "FixMaterialsCommands.h"
#include "LevelEditor.h"
#include "AutomationEditorCommon.h"
#include "AutomationEditorPromotionCommon.h"
//Assets
#include "AssetSelection.h"
//Materials
#include "Engine.h"
#include "Editor.h"
#include "Editor/MaterialEditor/Public/IMaterialEditor.h"
#include "Editor/MaterialEditor/Private/MaterialEditor.h"
#include "AssetEditorManager.h"
#include "AssetEditorToolkit.h"
#include "Materials/MaterialExpressionConstant3Vector.h"

I’ve found the solution how can i save assets via code. Using FAssetEditorToolkit::SaveAsset_Execute(). This is how i access protected members:

class MyMaterialEditor: private FMaterialEditor
{
public:
	void SaveMaterial() { this->SaveAsset_Execute(); };
};

And then:

MyMaterialEditor* myEdit = (MyMaterialEditor*) CurrentMaterialEditor;
myEdit->SaveMaterial();