diff --git a/batch_runner.py b/batch_runner.py index 9bc7a14ca..23eeec48e 100644 --- a/batch_runner.py +++ b/batch_runner.py @@ -914,6 +914,9 @@ class BatchRunner: for result in pool.imap_unordered(_process_batch_worker, tasks): results.append(result) progress.update(task, advance=1) + except Exception as e: + logger.error("Batch worker failed: %s", e, exc_info=True) + raise finally: root_logger.setLevel(original_level) diff --git a/tools/registry.py b/tools/registry.py index fccfbd238..b56cb64c3 100644 --- a/tools/registry.py +++ b/tools/registry.py @@ -125,7 +125,7 @@ class ToolRegistry: return _run_async(entry.handler(args, **kwargs)) return entry.handler(args, **kwargs) except Exception as e: - logger.error("Tool %s dispatch error: %s", name, e) + logger.exception("Tool %s dispatch error: %s", name, e) return json.dumps({"error": f"Tool execution failed: {type(e).__name__}: {e}"}) # ------------------------------------------------------------------