The dashboard connector keeps dropping packets right after the guest initialization. I’m trying to bypass the standard Messenger widget and hit the POST /api/v2/conversations/messaging/guests endpoint directly to feed raw message payloads into our analytics pipeline. The guest creation works fine, but the subsequent push to POST /api/v2/conversations/messaging/messages fails with a 400 Bad Request. The error payload returns "error":"invalid_message_format" even though the JSON matches the v2 spec exactly. I’ve been running this through a Node.js script that grabs a client_credentials token and pipes it into the Authorization header. The guest response gives back a valid id and externalContactId. I’m passing that externalContactId into the message body along with the conversationId pulled from the initial guest response. Here’s the exact payload: {"externalContactId":"guest-9f8a7b6c-1234-5678-90ab-cdef12345678","conversationId":"conv-1a2b3c4d-5678-90ab-cdef-1234567890ab","type":"text","text":"Test payload for analytics aggregation"}. The platform rejects it immediately. I’ve tried adding "from":{"id":"system"} but that just shifts the error to "error":"invalid_sender_identity". The Manila team’s aggregation workers depend on this raw stream to calculate first-response intervals, so the token refresh logic isn’t the issue here. The dateFrom and dateTo parameters aren’t even involved in this endpoint. What am I missing on the message structure? The docs mention a channelId requirement but don’t specify which one to use for pure API-driven guests. I’ve been testing this against the messaging channel type. The response headers show x-correlation-id but nothing useful in the body. I’m stuck on the payload schema.