Resuming a legacy breakpoint snapshot crashes with IndexError when the paused component has an empty input socket
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
Línea de trabajo
Lee _consume_component_inputs en haystack/core/pipeline/base.py alrededor de la línea 1357 y la cobertura de snapshots heredados en test/core/pipeline/test_breakpoint.py, especialmente TestResumeFromLegacyPipelineSnapshot. Reproduce el caso omitido del socket opcional y luego añade una prueba de regresión que muestre que un snapshot heredado se reanuda con el valor predeterminado del socket ({'greeter': {'result': 'hi'}}) y confirma que las pruebas de breakpoint pasan.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
Resuming a breakpoint snapshot saved by an older Haystack (legacy inputs_format=None, flattened inputs) crashes with IndexError: list index out of range when the paused component has an input socket with no stored value. This happens for a component with all-optional inputs triggered with no input, or any optional socket omitted from the snapshot. Current-format snapshots resume correctly.
Error message
IndexError: list index out of range
at haystack/core/pipeline/base.py:1357 in _consume_component_inputs (is_resume branch)
is_resume indexes socket_inputs_values[0] without checking the list is non-empty.
Expected behavior
The component resumes with its socket default: {'greeter': {'result': 'hi'}}.
To Reproduce
A pipeline with a component whose only input is optional (greeting: str = "hi") is run with break_point=Breakpoint(component_name="greeter"); the snapshot is converted to the legacy format (inputs_format=None, flattened inputs via the same helpers the migration uses) and resumed:
Case A (all-optional component, no inputs) legacy snapshot inputs: {'greeter': {}}
Case A FAILED: IndexError : list index out of range
Case B (current-format snapshot) resume: {'greeter': {'result': 'hi'}}
A self-contained script (repro_legacy_variants.py, plus a second shape repro_legacy_optional.py) is available; happy to attach it.
Additional context
- Legacy snapshot resume is explicitly supported (
haystack/core/pipeline/breakpoint.py:60-70, thefix-pipeline-snapshot-resume-in-loopsrelease note, andTestResumeFromLegacyPipelineSnapshot), but no test covers a missing socket value. - Suggested fix: guard the index (
if socket_inputs_values:) and add a legacy-resume test with an omitted optional socket; verified locally that this fixes both repro shapes andtest/core/pipeline/test_breakpoint.pystays green (41 passed). - Searched open and closed issues/PRs for breakpoint/snapshot/legacy resume IndexError: no duplicate. Open PR #13415 touches
_consume_component_inputsbut only adds lazy-variadic sorting, not this branch.
System
- OS: Windows 11
- Haystack version:
4b5dd70(main, v3.5.0-rc0)
Reported with AI assistance (Claude); the reproduction was executed and verified locally.
- Lenguaje dominante
- Python
- Estrellas
- 26.8k
- Forks
- 3.3k
- Merge medio
- 1 d 1 h
- PR fusionados (30 d)
- 235
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de deepset-ai/haystack
-
CSVToDocument accepts an unsupported conversion_mode and silently converts in row modePosiblemente ocupada @Lesereingrape la tomó hace 29 días. AbiertoP3
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
deepset-ai/haystack#13070 ·
Los mantenedores suelen responder en 1 día
-
PPTXToDocument drops soft line breaks when link_format is markdown or plainPosiblemente ocupada @bogdankostic la tomó hace 19 días. AbiertoP3
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
deepset-ai/haystack#13043 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
InMemoryDocumentStore: count_unique_metadata_by_filter and get_metadata_field_unique_values disagree on int/float/bool valuesPosiblemente ocupada @julian-risch la tomó hace 29 días. AbiertoP3
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
deepset-ai/haystack#13040 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
AutoMergingRetriever raises ValueError when a matched document has no parent (for example the root document)Posiblemente ocupada @julian-risch la tomó hace 30 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
deepset-ai/haystack#13029 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
CSVToDocument row mode fails on CR-separated CSV inputPosiblemente ocupada @julian-risch la tomó hace 29 días. AbiertoP3
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
deepset-ai/haystack#13022 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de deepset-ai/haystack
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Claiming namespace `thejakia1`Abiertonamespace operations
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
EclipseFdn/open-vsx.org#15057 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
FinanceFlash/unvibecode#349 ·
-
Mission statement: why this is free, in the README, Why This Exists and the wiki HomePosiblemente ocupada @ChiefGyk3D la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ChiefGyk3D/Clouds-Against-Humanity#348 ·
Los mantenedores suelen responder en 1 día
-
[Perf] Default --vllm-watermark 0.05 for rollouts (hybrid models re-preempt under KV pressure)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
vllm-project/vime#508 ·
Los mantenedores suelen responder en 4 días