diff --git a/cron/scheduler.py b/cron/scheduler.py index 78a20cf7f..4bd5724a6 100644 --- a/cron/scheduler.py +++ b/cron/scheduler.py @@ -837,6 +837,9 @@ def run_job(job: dict) -> tuple[bool, str, str, Optional[str]]: ) final_response = result.get("final_response", "") or "" + # Strip leaked placeholder text that upstream may inject on empty completions. + if final_response.strip() == "(No response generated)": + final_response = "" # Use a separate variable for log display; keep final_response clean # for delivery logic (empty response = no delivery). logged_response = final_response if final_response else "(No response generated)" diff --git a/gateway/run.py b/gateway/run.py index 5682d0034..b7e44d91e 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -8886,7 +8886,7 @@ class GatewayRunner: _resolved_model = getattr(_agent, "model", None) if _agent else None if not final_response: - error_msg = f"⚠️ {result['error']}" if result.get("error") else "(No response generated)" + error_msg = f"⚠️ {result['error']}" if result.get("error") else "" return { "final_response": error_msg, "messages": result.get("messages", []),