Currently, there is no possible way to detect certain network errors in any class other than your Game Instance, because this is the only location in code they are notified.
/** Opportunity for blueprints to handle network errors. */ UFUNCTION(BlueprintImplementableEvent, meta=(DisplayName = "NetworkError")) void HandleNetworkError(ENetworkFailure::Type FailureType, bool bIsServer); /** Opportunity for blueprints to handle travel errors. */ UFUNCTION(BlueprintImplementableEvent, meta=(DisplayName = "TravelError")) void HandleTravelError(ETravelFailure::Type FailureType);
I have a plugin that adds Network functionality via a UObject, which acts as a manager and is created as a sub-object of the GameInstance (thus making the plugin modular). Unfortunately, I’ve had to create a special game instance for this plugin and add delegates to it - so that the UObject manager can bind to them.
This is a really limiting design, and I would really appreciate this being able to bind other classes to these events so that I can handle errors appropriately. Find it kind of weird that the entire OSS is accessible from almost anywhere whereas this isn’t.