From 76e3358ed31f559efb186b0967a512fe25b0a7d8 Mon Sep 17 00:00:00 2001 From: cybermaggedon Date: Mon, 18 May 2026 14:19:19 +0100 Subject: [PATCH] fix: guard against empty query in SPARQL generator (#934) Split the query once and check the parts list before indexing, preventing an IndexError if the LLM returns an empty or whitespace-only string. Fixes #870. --- .../trustgraph/query/ontology/sparql_generator.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/trustgraph-flow/trustgraph/query/ontology/sparql_generator.py b/trustgraph-flow/trustgraph/query/ontology/sparql_generator.py index 44c7e0a1..97fc5f4d 100644 --- a/trustgraph-flow/trustgraph/query/ontology/sparql_generator.py +++ b/trustgraph-flow/trustgraph/query/ontology/sparql_generator.py @@ -202,11 +202,14 @@ ASK {{ if response and isinstance(response, dict): query = response.get('query', '').strip() - if query.upper().startswith(('SELECT', 'ASK', 'CONSTRUCT', 'DESCRIBE')): + parts = query.split() + if parts and parts[0].upper() in ( + 'SELECT', 'ASK', 'CONSTRUCT', 'DESCRIBE', + ): return SPARQLQuery( query=query, variables=self._extract_variables(query), - query_type=query.split()[0].upper(), + query_type=parts[0].upper(), explanation=response.get('explanation', 'Generated by LLM'), complexity_score=self._calculate_complexity(query) )