diag(qconnect): add decode-layer logging to find envelope unwrap issue

Log whether QCloudInnerEnvelope decode succeeds/fails, message byte
count, and whether queue/renderer decoders succeed or error.
This commit is contained in:
vicrodh committed 2026-02-21 16:27:01 -06:00
1 parent 309da97b8e
commit 975fac55f7
2 files changed
+35 -4

No files matched your search

+1
View File
@@ -14,3 +14,4 @@ thiserror = { workspace = true }
futures-util = { workspace = true }
tokio-tungstenite = { version = "0.24", features = ["rustls-tls-webpki-roots"] }
prost = "0.13"
log = "0.4"
+34 -4
View File
@@ -600,17 +600,43 @@ fn handle_incoming_binary(
// field 3 (bytes): the actual QConnectMessage protobuf
// We must unwrap field 3 before passing to the decoders.
let qconnect_bytes = match QCloudInnerEnvelope::decode(inner_payload.as_slice()) {
Ok(envelope) => envelope.message.unwrap_or_default(),
Err(_) => inner_payload,
Ok(envelope) => {
let msg = envelope.message.unwrap_or_default();
log::info!(
"[QConnect/Decode] Envelope unwrapped: corr={:?} seq={:?} message_len={}",
envelope.correlation_id,
envelope.sequence,
msg.len()
);
msg
}
Err(err) => {
log::warn!(
"[QConnect/Decode] Envelope decode failed ({}), using raw {} bytes",
err,
inner_payload.len()
);
inner_payload
}
};
if let Ok(events) = decode_queue_server_events(&qconnect_bytes) {
match decode_queue_server_events(&qconnect_bytes) {
Ok(events) => {
log::info!("[QConnect/Decode] Queue events decoded: {}", events.len());
for event in events {
emit(events_tx, TransportEvent::InboundQueueServerEvent(event));
}
}
Err(err) => {
log::warn!("[QConnect/Decode] Queue events decode error: {}", err);
}
}
if let Ok(commands) = decode_renderer_server_commands(&qconnect_bytes) {
match decode_renderer_server_commands(&qconnect_bytes) {
Ok(commands) => {
if !commands.is_empty() {
log::info!("[QConnect/Decode] Renderer commands decoded: {}", commands.len());
}
for command in commands {
emit(
events_tx,
@@ -618,6 +644,10 @@ fn handle_incoming_binary(
);
}
}
Err(err) => {
log::debug!("[QConnect/Decode] Renderer commands decode error: {}", err);
}
}
if let Ok(inbound) = decode_inbound_json(&qconnect_bytes) {
emit(events_tx, TransportEvent::InboundReceived(inbound));