The inability to write public interface IError where T: enum is something that we have all complained about for years. So far there has been no progress on that.
I usually end up writing public interface IError and leaving a note for the implementor that T must be an enum.