Guest API 403 when trying to send proactive message to previous session

Got a 403 Forbidden on POST /api/v2/conversations/messaging/guests/{guestId}/messages. The goal is to send a proactive nudge to a user who chatted yesterday. The docs say:

“Send a message on behalf of a guest. The guest must have an active session.”

But the session is closed. Or maybe it’s just ‘closed’ in the UI but still valid for the API? My C# code looks solid. Using the .NET SDK v13.

var message = new MessageSendRequest
{
 Text = new List<string> { "Hey, did you need help with that order?" },
 To = new List<ToAddress> 
 { 
 new ToAddress { Type = "guest", Address = guestId } 
 }
};

try
{
 var result = await _conversationsApi.PostConversationsMessagingGuestsMessagesAsync(guestId, message);
}
catch (ApiException ex)
{
 Console.WriteLine(ex.ErrorCode); // 403
 Console.WriteLine(ex.ErrorMessage); // "Guest not found or session expired"
}

The Guest ID is definitely correct. Pulled it from the analytics report. If the session is closed, is there a different endpoint? Or do I need to reopen it first? The docs don’t mention a ‘reopen’ method. Just says ‘active session’.

Feeling stuck. The 403 is pretty vague. Doesn’t tell me if it’s an auth issue or a session state issue. My OAuth token is fresh. Scopes include messaging:guest.