# DEBUG SESSION — reasoning-internal-exception

[OPEN] 2026-09-20

## Session Metadata
- **SESSION_ID**: reasoning-internal-exception
- **ROOT_CAUSE_STATUS**: HUNTING
- **BUG SOURCE**: Manual reproduction GUI real Alex × 2
- **FALLO A**: SOFTWARE_OBSERVATION REQUEST → chat_sd_* → Self-Dev incorrecto (anterior)
- **FALLO B**: FREE-TEXT REASONING → Pensando... → excepción capturada → mensaje "Ups tuve un problema interno al razonar (está registrado)" → GUI surviva (fail-safe)
- **USER MESSAGES**:
  1. "por qué la GUI real sigue creando chat_sd_* y entra directamente a Self-Development antes del PHASE 26D." (×2)
  2. "muestra lo que esta registrado"
- **FALSA DEDUCCIÓN PROHIBIDA**: GUI_FAILSAFE working NO implica REASONING_PATH=PASS → explícitamente REASONING_PATH=FAIL

## Hypothesis EVALUATION (Evidence Based from LOG PID2256 + __last_ua_error.json)
- **H1 - NAME_ERROR / ATTRIBUTE_ERROR helpers**: ✅ CONFIRMED but *partially* (exception is AttributeError but NOT in helpers L806-L1133; happens earlier in _ensure_identity_loaded which is called BEFORE PHASE 26C/26D in _build_reasoning_context).
- **H2 - WIN32GUI FOREGROUND EXCEPTION**: ❌ REJECTED. Not related; exception in _os_id.join line 1418.
- **H3 - VISUAL OBSERVATION FOUNDATION AUTHORIZED_TARGETS ValueError**: ❌ REJECTED. Never reaches observation code; crashes much earlier in reasoning context.
- **H4 - EXCEPTION IN _REASON_FREE_TEXT GENERAL CATCH (response handling)**: ❌ REJECTED. Not Unicode/encoding; root cause is typo _os_id.join vs _os_id.path.join.
- **H5 - MISMO ROOT CAUSE FALLO A + FALLO B (unificado)**: ✅ FULLY CONFIRMED.
  - ROOT: Typo `_os_id.join` L1418 / `_os_id.exists` L1420 → missing `.path` → AttributeError.
  - FALLO B chain: GUI msg → _worker_free_text → _reason_free_text → _build_reasoning_context (L2154) → _ensure_identity_loaded → AttributeError L1418 → failsafe general L5568 → "Ups tuve un problema interno".
  - FALLO A chain: GUI msg with SD-bridge classifier score>=2 → kind=TASK → chat_sd_* task_id created → _run_self_dev_pipeline ALSO calls identity/reasoning → SAME AttributeError → SD_BRIDGE_TOPLEVEL_FAIL L5523 → fallback → calls _reason_free_text → AGAIN AttributeError → failsafe msg. Result: Alex sees chat_sd_* task, then reasoning error, then "Ups tuve un problema". 1 root cause → 2 failure symptoms.

## EVIDENCIA CAPTURADA (concrete)
- Archivo persistente error UA: `runtime_v1/data/__last_ua_error.json` (último error cada vez)
- Log runtime PID=2256: `runtime_v1/logs/optimus_runtime_pid2256.log` → lines 25-140: 6 repeticiones IDÉNTICAS del error en timestamps 13:50:26, 13:50:37, 13:50:43, 13:51:19 (último = trigger "muestra lo que esta registrado")
- EXACT call stack (6 niveles): _worker_free_text L5548 → _reason_free_text L2154 → _build_reasoning_context L1591 → _ensure_identity_loaded L1418 → AttributeError
- GUI_FAILSAFE WORKING ✅: usuario ve mensaje amigable, UA sigue vivo, tray sigue, SINGLE_INSTANCE ok, NO crash.

## Rules (Evidence Gate Skill + §0B Alex)
- SIN modificaciones lógica hasta tener traceback real.
- Instrumentation FIRST si hace falta (después de recolectar logs existentes).
- Fix mínimo después de evidencia.
