fix(gateway): send error responses for unrecognized WebSocket message types (#3681) (#4381)

Previously, the /ws/chat handler silently ignored messages with
unrecognized types, leaving clients waiting for a response that never
comes. Now sends explicit error messages describing the expected format.
This commit is contained in:
Argenis 2026-03-23 12:33:23 -04:00 committed by Roman Tataurov
parent 39916b0b4b
commit e0c25a2c0d
No known key found for this signature in database
GPG Key ID: 70A51EF3185C334B

View File

@ -270,7 +270,22 @@ async fn handle_socket(
process_chat_message(&state, &mut agent, &mut sender, &content, &session_key)
.await;
}
} else {
let unknown_type = parsed["type"].as_str().unwrap_or("unknown");
let err = serde_json::json!({
"type": "error",
"message": format!(
"Unsupported message type \"{unknown_type}\". Send {{\"type\":\"message\",\"content\":\"your text\"}}"
)
});
let _ = sender.send(Message::Text(err.to_string().into())).await;
}
} else {
let err = serde_json::json!({
"type": "error",
"message": "Invalid JSON. Send {\"type\":\"message\",\"content\":\"your text\"}"
});
let _ = sender.send(Message::Text(err.to_string().into())).await;
}
}
@ -293,6 +308,13 @@ async fn handle_socket(
let msg_type = parsed["type"].as_str().unwrap_or("");
if msg_type != "message" {
let err = serde_json::json!({
"type": "error",
"message": format!(
"Unsupported message type \"{msg_type}\". Send {{\"type\":\"message\",\"content\":\"your text\"}}"
)
});
let _ = sender.send(Message::Text(err.to_string().into())).await;
continue;
}