Develop

Rejoin

Updated: Apr 17, 2026
Rejoin is a platform feature that displays a system dialog prompting users to reconnect to a multiplayer session after a disconnection.

Overview

When you integrate Rejoin, you invoke the dialog and handle the user’s response. The feature displays the dialog, but you are responsible for implementing the actual rejoin logic and deep linking.
Rejoin dialog
If all users have left the session and a user tries to rejoin, you can configure the application to display an error message indicating that the session is no longer available.
See Error Dialogs for more information about including dialogs in your application.

Rejoin APIs

Launch Rejoin Dialog

Launch the Rejoin dialog, which allows the user to rejoin a previous lobby or match. You must populate the lobby_session_id or the match_session_id, or both.
ovr_GroupPresence_LaunchRejoinDialog(const char *lobby_session_id, const char *match_session_id, const char *destination_api_name)
If using the Meta XR Platform SDK, you can use the Group Presence Launch Rejoin Dialog node:
Rejoin Node
On success, the response indicates whether the user chose to rejoin the session.

Use Cases

A user is in a roster with a few other people.
  • Their app crashes, and they need to relaunch. When the app relaunches, they see the Rejoin dialog and rejoin the group from there.
  • They lose their internet connection for a short period of time, and they disconnect from the group and back to the main menu of the app. When the internet connection restores, they see the Rejoin dialog and rejoin the group from there.
You can use the Rejoin dialog after any disconnection from the roster or group, whether accidental or intentional. Use Rejoin to give the user a choice as to whether they want to be put back into the group they used to be in.

Example Code

The following example invokes the Rejoin functionality using the C++ delegate-based API from the Meta XR Platform SDK:
#include "OVRPlatformCppRequests.h"

OvrPlatform_GroupPresence_LaunchRejoinDialog(
    GameInstance,
    FString(TEXT("123")),
    FString(TEXT("456")),
    FString(TEXT("my_destination_name")),
    OvrPlatform_GroupPresence_LaunchRejoinDialog_Delegate::CreateLambda(
        [](bool bIsError, FOvrRejoinDialogResultPtr Response, FString ErrorMsg)
        {
            if (bIsError)
            {
                // Handle error
            }
            else if (Response.IsValid())
            {
                bool bRejoinSelected = Response->RejoinSelected;
                // Handle the user's rejoin decision
            }
        }));
The result type FOvrRejoinDialogResult has a single RejoinSelected boolean property indicating whether the user chose to rejoin.

Best Practices

  • Only display the Rejoin dialog when the target session has an active roster.
  • If applicable, pass in a valid destination_api_name.