From b738bd43a5ce95b5fbdfc8ca773b0c94891f97cb Mon Sep 17 00:00:00 2001 From: Prins Kumar Date: Mon, 13 Jul 2026 16:38:58 +0530 Subject: [PATCH] GML-2083: fix UnboundLocalError in community desc poll during rebuild Return False and log full traceback when communities_have_desc (or embedding check) fails so the wait loop retries instead of crashing the rebuild TaskGroup. --- ecc/app/graphrag/util.py | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/ecc/app/graphrag/util.py b/ecc/app/graphrag/util.py index 2fad066..4f4b204 100644 --- a/ecc/app/graphrag/util.py +++ b/ecc/app/graphrag/util.py @@ -615,11 +615,20 @@ async def check_vertex_has_desc(conn, i: int): params={"iter": i}, ) except Exception as e: - logger.error(f"Check Vert Desc err:\n{e}") + logger.error( + f"Check Vert Desc err: {e!r}\n{traceback.format_exc()}" + ) + return False - res = resp[0]["all_have_desc"] - logger.info(res) + try: + res = resp[0]["all_have_desc"] + except (IndexError, KeyError, TypeError) as e: + logger.error( + f"Check Vert Desc unexpected response {resp!r}: {e!r}" + ) + return False + logger.info(res) return res async def check_embedding_rebuilt(conn, v_type: str): @@ -632,11 +641,20 @@ async def check_embedding_rebuilt(conn, v_type: str): } ) except Exception as e: - logger.error(f"Check embedding rebuilt err:\n{e}") + logger.error( + f"Check embedding rebuilt err: {e!r}\n{traceback.format_exc()}" + ) + return False - res = resp[0]["all_have_embedding"] - logger.info(resp) + try: + res = resp[0]["all_have_embedding"] + except (IndexError, KeyError, TypeError) as e: + logger.error( + f"Check embedding rebuilt unexpected response {resp!r}: {e!r}" + ) + return False + logger.info(resp) return res