Invite to a party

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

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

Please refrain from tagging users directly, have a look at: Heroic Labs Documentation | Real-time Chat, you need to set up the channel before sending the direct message.

Hope this helps.

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
I’m following this way