HKUDS/DeepTutor · error · ValueError

Choice option bodies must be unique; retry mastery_quiz with

Error message

Choice option bodies must be unique; retry mastery_quiz with distinct answer text for every option.

What it means

Error "Choice option bodies must be unique; retry mastery_quiz with distinct answer text for every option." thrown in HKUDS/DeepTutor.

Source

Thrown at deeptutor/capabilities/mastery/tools.py:205

    choice_options = parse_options(options)
    duplicate = _duplicate_option_body(choice_options)
    if duplicate:
        raise ValueError(
            f"Two or more choice options have the same answer ({duplicate!r}), so the "
            "learner would be shown identical choices. Retry mastery_quiz with one "
            "distinct body per option."
        )
    if not has_option_bodies(choice_options):
        raise ValueError(
            "Choice questions need full option bodies in mastery_quiz.options "
            "(for example ['A: first answer', 'B: second answer']), not only "
            "the labels A/B/C/D. Retry mastery_quiz with the exact option "
            "descriptions you will show through ask_user."
        )
    normalized_bodies = {" ".join(body.split()).casefold() for body in choice_options.values()}
    if len(normalized_bodies) != len(choice_options):
        raise ValueError(
            "Choice option bodies must be unique; retry mastery_quiz with "
            "distinct answer text for every option."
        )
    resolved_expected = resolve_answer(expected_answer, choice_options)
    if not resolved_expected:
        raise ValueError(
            "Choice expected_answer must be an option label such as A/B/C/D, "
            "or uniquely match one full option body. Retry mastery_quiz with "
            "the correct label."
        )
    return question_type, format_options(choice_options), resolved_expected


async def _resolve_pending_choice(
    pending: PendingQuestion, turn_id: str
) -> tuple[dict[str, str], str]:
    """Resolve a pending choice question's ``({label: body}, expected_label)``.

View on GitHub (pinned to 3e82f13042)

When it happens

Trigger: Thrown at deeptutor/capabilities/mastery/tools.py:205 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of HKUDS/DeepTutor@3e82f13042 (2026-08-27). Data as JSON: /api/errors/94806bb26b99048a. Report an issue: GitHub.