From 22ee9b2fe3b89ed22f35221fb38fbc8beef27b69 Mon Sep 17 00:00:00 2001 From: OG T Date: Sun, 5 Apr 2026 14:20:54 +0800 Subject: [PATCH] =?UTF-8?q?fix(telegram):=20answerCallbackQuery=20result?= =?UTF-8?q?=3Dtrue=20=E5=B0=8E=E8=87=B4=20bool=20is=20not=20iterable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Telegram answerCallbackQuery 成功時返回 {"ok": true, "result": true}, _send_request 中 "message_id" in result["result"] 對 bool 做 in 操作 報 "argument of type 'bool' is not iterable"。 修正:加 isinstance(result_val, dict) 防禦後再做 in 檢查。 Co-Authored-By: Claude Sonnet 4.6 --- apps/api/src/services/telegram_gateway.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/api/src/services/telegram_gateway.py b/apps/api/src/services/telegram_gateway.py index 112f4310..4a57badf 100644 --- a/apps/api/src/services/telegram_gateway.py +++ b/apps/api/src/services/telegram_gateway.py @@ -1168,9 +1168,10 @@ class TelegramGateway: f"Telegram API error: {result.get('description', 'Unknown error')}" ) - # 成功: 記錄 message_id - if "result" in result and "message_id" in result["result"]: - span.set_attribute("telegram.message_id", result["result"]["message_id"]) + # 成功: 記錄 message_id (result 可能是 dict 或 bool,需防禦) + result_val = result.get("result") + if isinstance(result_val, dict) and "message_id" in result_val: + span.set_attribute("telegram.message_id", result_val["message_id"]) span.set_status(trace.Status(trace.StatusCode.OK)) return result