# Invite to a party

**URL:** <https://forum.heroiclabs.com/t/invite-to-a-party/4615>\
**Category:** Runtime Framework\
**Tags:** server-framework, sdk-unreal\
**Created:** [November 20, 2023, 3:52pm UTC](https://forum.heroiclabs.com/t/invite-to-a-party/4615 "2023-11-20T15:52:43Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Albertcleetus](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.heroiclabs.com/albertcleetus/32/603_2.png) [@Albertcleetus](https://forum.heroiclabs.com/u/Albertcleetus)\
**Post date:** [November 20, 2023, 3:52pm UTC](https://forum.heroiclabs.com/t/invite-to-a-party/4615/1 "2023-11-20T15:52:43Z")

</div>

when I try to invite a friend from friendlist into a party, I get this error.

 ![image](https://us1.discourse-cdn.com/flex020/uploads/heroiclabs/original/2X/e/ec9187596cfe9ba886788b3d3f51104cdf6e4442.png)

LogTemp: [NRtClient::ping] …  
LogTemp: [NRtClient::createParty] …  
LogTemp: Successfully created party: 8753b067-2788-45ed-ad99-c19be61c036a.nakama-dev

LogTemp: [NRtClient::writeChatMessage] …  
LogTemp: Error: [NRtClient::onTransportMessage] NRtError: BAD\_INPUT  
Invalid channel identifier  
LogTemp: Message Send Error: Invalid channel identifier

_this is my function for creating the party which works fine,_

void UBackendGameinstance::Creatyparty(bool openparty, int32 maximumPlayers)  
{  
bool Open = openparty;  
int32 MaxPlayers = maximumPlayers;

```
FOnCreateParty CreatePartySuccessDelegate;
CreatePartySuccessDelegate.AddDynamic(this, &UBackendGameinstance::OnCreatePartySuccess);

FOnRtError CreatePartyErrorDelegate;
CreatePartyErrorDelegate.AddDynamic(this, &UBackendGameinstance::OnCreatePartyError);

rtClient->CreateParty(Open, MaxPlayers, CreatePartySuccessDelegate, CreatePartyErrorDelegate);

```

}

void UBackendGameinstance::OnCreatePartySuccess(FNakamaParty Party)  
{  
partyId = \*Party.Id;  
UE\_LOG(LogTemp, Log, TEXT(“Successfully created party: %s”), \*Party.Id);  
}

void UBackendGameinstance::OnCreatePartyError(const FNakamaRtError& Error)  
{  
UE\_LOG(LogTemp, Error, TEXT(“Error creating party: %s”), \*Error.Message);  
}

_after creating the party I call this function to invite a friend into the party which is giving me the error mentioned above._

void UBackendGameinstance::partyRequest(FString inviteFriendID)  
{  
FOnWriteChatMessage SendDirectMessageSuccessDelegate;  
SendDirectMessageSuccessDelegate.AddDynamic(this, &UBackendGameinstance::OnRequestPartyMessageSuccess);

```
FOnRtError SendDirectMessageErrorDelegate;
SendDirectMessageErrorDelegate.AddDynamic(this, &UBackendGameinstance::OnRequestPartyMessageError);

FChatMessage ChatMessage;
ChatMessage.Message = FString::Printf(TEXT("{\"action\" : \"PartyInv\" ,\"SenderName\":\"%s\"}"), *username);
ChatMessage.PartyId = partyId;

//ChatMessage.Message = FString::Printf(TEXT("do you want to join now: ?"));
//ChatMessage.PartyId = "0000-0000";
UE_LOG(LogTemp, Warning, TEXT("Sent user id : %s"), *inviteFriendID);

UE_LOG(LogTemp, Warning, TEXT("Message: %s"), *ChatMessage.Message);
UE_LOG(LogTemp, Warning, TEXT("Partyid: %s"), *ChatMessage.PartyId);

FString Json;
FJsonObjectConverter::UStructToJsonObjectString(ChatMessage, Json);

rtClient->SendDirectMessage(inviteFriendID, Json, SendDirectMessageSuccessDelegate, SendDirectMessageErrorDelegate);

```

}  
void UBackendGameinstance::OnRequestPartyMessageSuccess(const FNakamaChannelMessageAck MessageAck)  
{  
UE\_LOG(LogTemp, Log, TEXT(“Message Success:”));  
}

void UBackendGameinstance::OnRequestPartyMessageError(const FNakamaRtError& Error)  
{

```
UE_LOG(LogTemp, Log, TEXT("Message Send Error: %s"), *Error.Message);

```

}

Help please, I’m stucked with this error  
@sesposito @zyro

---

<div class="post-metadata">

**Author:** ![sesposito](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.heroiclabs.com/sesposito/32/2594_2.png) [@sesposito](https://forum.heroiclabs.com/u/sesposito)\
**Post date:** [November 23, 2023, 5:17pm UTC](https://forum.heroiclabs.com/t/invite-to-a-party/4615/2 "2023-11-23T17:17:14Z")

</div>

Please refrain from tagging users directly, have a look at: [Heroic Labs Documentation | Real-time Chat](https://heroiclabs.com/docs/nakama/concepts/chat/#direct), you need to set up the channel before sending the direct message.

Hope this helps.

---

<div class="post-metadata">

**Author:** ![Albertcleetus](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.heroiclabs.com/albertcleetus/32/603_2.png) [@Albertcleetus](https://forum.heroiclabs.com/u/Albertcleetus)\
**Post date:** [November 24, 2023, 3:06pm UTC](https://forum.heroiclabs.com/t/invite-to-a-party/4615/3 "2023-11-24T15:06:07Z")

</div>

void UBackendGameinstance::sendMessage(FString messageUser)  
{  
FString UserId = messageUser;  
bool Persistence = true;  
bool Hidden = false;

```
FOnJoinChat JoinChatSuccessDelegate;
JoinChatSuccessDelegate.AddDynamic(this, &UBackendGameinstance::OnJoinChatSuccess);

FOnRtError JoinChatErrorDelegate;
JoinChatErrorDelegate.AddDynamic(this, &UBackendGameinstance::OnJoinChatError);

rtClient->JoinChat(UserId, ENakamaChannelType::DIRECT_MESSAGE, Persistence, Hidden, JoinChatSuccessDelegate, JoinChatErrorDelegate);

```

}  
void UBackendGameinstance::OnJoinChatSuccess(FNakamaChannel Channel)  
{  
UE\_LOG(LogTemp, Log, TEXT(“Connected to channel: %s”), \*Channel.Id);  
}  
void UBackendGameinstance::OnJoinChatError(const FNakamaRtError& Error)  
{  
UE\_LOG(LogTemp, Error, TEXT(“Error connecting to channel: %s”), \*Error.Message);  
}

\*_ **Yes I called this function first, after that** _  
\*\*_ **can i call send direct message function** _

void UBackendGameinstance::partyRequest(FString inviteFriendID)  
{  
FOnWriteChatMessage SendDirectMessageSuccessDelegate;  
SendDirectMessageSuccessDelegate.AddDynamic(this, &UBackendGameinstance::OnRequestPartyMessageSuccess);

```
FOnRtError SendDirectMessageErrorDelegate;
SendDirectMessageErrorDelegate.AddDynamic(this, &UBackendGameinstance::OnRequestPartyMessageError);

FChatMessage ChatMessage;
ChatMessage.Message = FString::Printf(TEXT("{\"action\" : \"PartyInv\" ,\"SenderName\":\"%s\"}"), *username);
ChatMessage.PartyId = partyId;

//ChatMessage.Message = FString::Printf(TEXT("do you want to join now: ?"));
//ChatMessage.PartyId = "0000-0000";
UE_LOG(LogTemp, Warning, TEXT("Sent user id : %s"), *inviteFriendID);

UE_LOG(LogTemp, Warning, TEXT("Message: %s"), *ChatMessage.Message);
UE_LOG(LogTemp, Warning, TEXT("Partyid: %s"), *ChatMessage.PartyId);

FString Json;
FJsonObjectConverter::UStructToJsonObjectString(ChatMessage, Json);

rtClient->SendDirectMessage(inviteFriendID, Json, SendDirectMessageSuccessDelegate, SendDirectMessageErrorDelegate);

```

}  
void UBackendGameinstance::OnRequestPartyMessageSuccess(const FNakamaChannelMessageAck MessageAck)  
{  
UE\_LOG(LogTemp, Log, TEXT(“Message Success:”));  
}

void UBackendGameinstance::OnRequestPartyMessageError(const FNakamaRtError& Error)  
{

```
UE_LOG(LogTemp, Log, TEXT("Message Send Error: %s"), *Error.Message);

```

}

\*\***[Heroic Labs Documentation | Unreal](https://heroiclabs.com/docs/nakama/client-libraries/unreal/index.html#joining-parties)**  
I’m following this way
