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.
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.
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.
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)
On success, the response indicates whether the user chose to rejoin the session.
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.
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.
- Only display the Rejoin dialog when the target session has an active roster.
- If applicable, pass in a valid
destination_api_name.