MEDIUM SEVERITYCONFIRMED

factuality/parser.py raises ZeroDivisionError when LLM returns empty claims list

Package
opik
Version
1.10.54
Verified
2026-03-28

Description

opik's factuality metric parser in `evaluation/metrics/llm_judges/factuality/parser.py` computes the score as `score /= len(list_content)`. When the LLM returns an empty JSON array `[]`, `list_content` is empty and the division raises `ZeroDivisionError`. The outer `try/except` re-raises it as `MetricComputationError`, but the path is fragile — an explicit guard before the division is the correct fix.

Reproduction

# factuality/parser.py:28
list_content = []  # LLM returned empty claims list
score = 0.0
for claim in list_content:
    score += float(claim['score'])
score /= len(list_content)  # ZeroDivisionError: division by zero
← All bugsScan your code →