---
id: "006_jupyter_exec_outputs_keyerror"
title: "jupyter_exec cell: KeyError 'outputs' en notebooks creados manualmente"
status: completado
type: feature
domain: []
scope: multi-app
priority: media
depends: []
blocks: []
related: []
created: 2026-05-17
updated: 2026-05-17
tags: []
---
# jupyter_exec cell: KeyError 'outputs' en notebooks creados manualmente

**Componente:** `python/functions/notebook/jupyter_exec.py`

## Problema

Al ejecutar `jupyter_exec.py cell` sobre un notebook creado como archivo (no via Jupyter UI), falla con:

```
{"error": "'outputs'"}
```

La causa es que las celdas de código creadas manualmente pueden no incluir el campo `"outputs": []` o `"execution_count": null` que Jupyter espera. El exec no valida/normaliza la estructura antes de operar.

## Reproducción

1. Crear un .ipynb manualmente con celdas `"cell_type": "code"` sin campo `"outputs"`
2. Abrir en Jupyter Lab
3. Ejecutar `jupyter_exec.py cell notebook.ipynb <N>`
4. Error: `{"error": "'outputs'"}`

## Solución propuesta

En `jupyter_exec.py`, antes de ejecutar una celda, normalizar campos faltantes:
- Si `cell_type == "code"` y no tiene `outputs` → añadir `"outputs": []`
- Si no tiene `execution_count` → añadir `"execution_count": null`

Esto es especialmente relevante combinado con la issue 001 (crear notebooks) y 005 (batch), ya que los notebooks creados programáticamente son los más propensos a este problema.
