I have fixed it. I don’t really fixed but now I know the correct way to create a c++ interface in Unreal. Now, when you create a new c++ class from the editor, you can chosse ‘Unreal Interface’ class, I did not know it.
the generated code is the same that I did manually but I suppose that there are some changes in the .generated file.
For anyone else that runs into this, this is the issue: The original post’s code contained class UIKADestroy_I : public UInterface and class IDestroy, and these don’t match. When UHT comes across a UINTERFACE macro, it replaces the first character of the class name from “U” to “I” to come up with the name of the corresponding interface class that it expects to find. OP received the error because UHT couldn’t find a declaration called IIKADestroy_I.
The fix in this case would be to rename UIKADestroy_I to UDestroy, or to rename IDestroy to IIKADestroy_I.
The answer to this assertion is also mentioned here.