C++ call from blueprint

Hello guys

in my game Instance I have

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "GC|NetWork")
UGC_WebSocketWrapper* webSocket;

In my GameInstance Constructor

webSocket = NewObject<UGC_WebSocketWrapper>();

Web socket is defined like this :

UCLASS()
class GCGAME_API UGC_WebSocketWrapper : public UObject
{
    GENERATED_BODY()

public:
    UGC_WebSocketWrapper(const FObjectInitializer& ObjectInitializer);
    
    UFUNCTION(BlueprintCallable)
    void OpenSocket();

    UFUNCTION(BlueprintCallable)
    void CloseSocket();

private:
    TSharedPtr<FSocketIONative> Socket;
};

when in blueprint I try to OpenOpenSocket using the reference from the GameInstance Nothing happen
here is the open method :

void UGC_WebSocketWrapper::OpenSocket()
{
    UE_LOG(LogTemp, Log, TEXT("Trying to connect websocket"));
    Socket->Connect("http://localhost:3000", nullptr, nullptr);
    
    Socket->OnConnectedCallback = [this](const FString& SessionId) {
        UE_LOG(LogTemp, Log, TEXT("Connected !!"));
    };
}

Nothing happen, even the log event.

here is how I test it

I messed something with the UPROPERTY ?

It’s was a cast fail, The gameinstance wasn’t set on the project