The Claude Bible
Inicio / Resolución de problemas y recuperación
Nivel: Avanzado · 8 lecciones

Resolución de problemas y recuperación

Cuando algo sale mal y cómo recuperarse.

Abrir el curso interactivo212 lecciones, cuestionarios, ejercicios, 3 idiomas, gratis.

Cuando Claude da vueltas en círculos

Un bucle ocurre cuando Claude repite el mismo enfoque fallido: reintenta el mismo comando, reescribe el mismo archivo, o se disculpa y vuelve a cometer el mismo error. Detectar un bucle a tiempo ahorra tokens (las unidades de texto que procesa el modelo) y evita acumular errores.

La salida más rápida es un cambio de alcance: en lugar de pedirle a Claude que repare el conjunto defectuoso, aísle la parte más pequeña que debe funcionar primero. Proporcione a Claude un único archivo, una única función o un único mensaje de error en lugar del contexto completo. Un alcance menor implica menos variables y un camino más corto hacia una respuesta correcta.

Cuando reducir el alcance no es suficiente, cambie por completo el enfoque. Indíquele explícitamente a Claude qué estrategia debe descartar y qué intentar en su lugar. Expresiones como /clear en Claude Code (que reinicia el contexto de la conversación) o iniciar una nueva sesión evitan que los intentos fallidos anteriores influyan en los siguientes.

Puntos clave
  • Detectar un bucle contando los intentos idénticos repetidos
  • Usar /clear para reiniciar el contexto sin perder los archivos
  • Reducir el alcance a un solo archivo o una sola función
  • Prohibir explícitamente las estrategias fallidas antes de volver a intentarlo

Recuperarse de una edición incorrecta

Claude Code edita los archivos directamente en el disco. Si un cambio rompe algo, hay que actuar rápido antes de que el contexto crezca y el estado original sea más difícil de rastrear. Las dos principales vías de recuperación son el revertido con git (cuando el proyecto usa git, un sistema de control de versiones que registra cada cambio en los archivos) y la restauración manual (cuando no lo usa).

Cuando git está disponible, estos comandos cubren la mayoría de las situaciones:

Si no hay historial de git, las opciones son más limitadas. Claude Code conserva una transcripción de la sesión, por lo que puedes pedirle que reimprima el contenido original de un archivo que editó y luego pegarlo de nuevo. Para archivos críticos, el hábito más seguro es ejecutar cp important.js important.js.bak antes de comenzar una sesión de edición larga.

También puedes pedirle directamente a Claude Code: "Deshaz la última edición de config.js" o "Revierte todos tus cambios en esta sesión." Claude Code usará git internamente cuando esté disponible, o intentará reconstruir el contenido anterior desde su ventana de contexto (la memoria activa de la conversación).

Puntos clave
  • git checkout -- archivo para restaurarlo al último commit
  • git reset --hard HEAD~1 para eliminar por completo el último commit
  • Pedirle a Claude Code en lenguaje natural que deshaga o revierta
  • Hacer copias de seguridad manuales de archivos críticos antes de una sesión grande

El contexto se contaminó

Cada conversación con Claude transcurre dentro de una ventana de contexto (el bloque de texto que el modelo puede ver de una vez). Cuando una sesión larga acumula intentos fallidos, instrucciones contradictorias o resultados de herramientas ruidosos, el modelo empieza a dar peso a ese historial deficiente y ofrece peores respuestas. A esto se le llama contaminación de contexto.

Claude Code le ofrece tres niveles de intervención, de menor a mayor impacto:

Una buena regla general: si se encuentra re-explicando algo que ya dijo tres mensajes atrás, primero compacte. Si Claude se contradice o ignora una restricción que usted definió, use clear. Si el modelo parece estar alucinando el contenido de archivos o resultados de herramientas, empiece de nuevo y vuelva a leer explícitamente los archivos relevantes.

Puntos clave
  • La ventana de contexto se llena y degrada la calidad de las respuestas
  • /compact resume, /clear borra, un inicio nuevo reinicia todo
  • Tener que re-explicarse es la primera señal de alarma
  • El contenido de archivos alucinado requiere un reinicio completo

Una API incorrecta u obsoleta

Claude se entrena con una instantánea fija del mundo. Cuando le pides que llame a una API (una Interfaz de Programación de Aplicaciones, el contrato que define cómo dos programas se comunican), puede generar código que corresponde a una versión anterior de esa API. Esto se llama una llamada alucinada u obsoleta: el código parece plausible pero fallará en tiempo de ejecución porque el endpoint, el nombre del parámetro o el encabezado requerido ya no existe.

El patrón de fallo suele ser uno de estos:

La solución es siempre la misma: anclar a Claude en la especificación real y actual antes de pedirle que escriba o depure la llamada. Puedes pegar la sección relevante de la documentación oficial directamente en tu prompt, o apuntar a Claude Code hacia el archivo OpenAPI (descripción de la API legible por máquina) en vivo con /fetch. Nunca confíes en que Claude conozca una API de terceros sin una fuente.

En Claude Code (el agente de codificación por línea de comandos e IDE), el flujo de trabajo es: reproducir el error, recopilar la respuesta HTTP sin procesar, obtener la documentación actual y luego pedirle a Claude que compare su código generado con la especificación real y parchee solo lo que cambió. Mantené la corrección quirúrgica para evitar introducir nuevos errores.

Puntos clave
  • Llamada API obsoleta: código generado a partir de una especificación desactualizada
  • Anclar a Claude en la documentación oficial actual antes de escribir llamadas
  • Usar códigos de estado HTTP sin procesar para diagnosticar la categoría del fallo
  • Obtener la especificación OpenAPI en vivo con /fetch y luego solicitar un parche específico

Recibes un error 429

Un error 429 significa "Demasiadas solicitudes." La API (Application Programming Interface, la puerta de enlace que Claude Code usa para conectarse con Claude) tiene un límite de tasa: un techo sobre cuántos tokens (fragmentos de texto) puedes enviar o recibir en una ventana de tiempo determinada. Al alcanzar ese techo, cada solicitud rebota con un 429 hasta que la ventana se reinicia.

Claude Code reporta los errores 429 como un mensaje de error rojo en la terminal. El mensaje generalmente incluye un valor de encabezado Retry-After, que indica exactamente cuántos segundos debes esperar. Si estás en un plan gratuito o de nivel 1, la ventana suele ser de un minuto; en niveles superiores los límites también aplican por hora y por día.

Causas comunes de errores 429 en una sesión de Claude Code:

Para evitar errores 429: lee los archivos de forma incremental con offset y limit, usa el prompt caching (prefija las partes estables de tu contexto para que no se recarguen en cada turno), reduce max_tokens cuando no necesitas respuestas largas, y agrega una breve pausa entre llamadas automatizadas. Para trabajos en lote intensivos, cambia a la Batch API, que tiene un límite de tasa separado y mucho mayor, además de un descuento del 50 % en costos.

Puntos clave
  • 429 = límite de tasa alcanzado, espera a que la ventana se reinicie
  • El encabezado Retry-After indica el tiempo de espera exacto
  • El prompt caching y las lecturas incrementales reducen el consumo de tokens
  • La Batch API tiene un límite separado y cuesta un 50 % menos

Un comando bloqueado

Un proceso bloqueado es aquel que ha dejado de avanzar pero no ha terminado. En Claude Code, esto suele ocurrir cuando un comando shell espera indefinidamente una entrada, una solicitud de red expira en silencio, o una tarea en segundo plano llena un buffer. Saber distinguir entre "lento" y "realmente atascado" evita que interrumpas un trabajo que simplemente necesita más tiempo.

La salida más rápida es Ctrl+C, que envía una señal de interrupción al proceso en primer plano. Si el terminal mismo está congelado, pulsa Ctrl+C dos veces rápidamente. Claude Code cancelará la llamada a herramienta activa y te devolverá el control sin perder el contexto de la conversación.

Para comandos que sabes pueden tardar mucho, ejecútalos como tareas en segundo plano incluyendo run_in_background: true en los parámetros de la herramienta, o sufija el comando shell con &. Recibirás una notificación cuando la tarea finalice en lugar de esperar de forma bloqueante.

Puntos clave
  • Ctrl+C cancela la llamada a herramienta activa y devuelve el control
  • Envuelve los comandos shell arriesgados con el prefijo timeout
  • Usa run_in_background para procesos largos o bloqueantes
  • /stop detiene un bucle de agente sin terminar la sesión

Deshacer cambios de forma segura

Git ofrece varios niveles de deshacer, cada uno adecuado para una situación diferente. La clave está en saber cuál elegir para recuperar lo que necesitas sin perder nada más.

git restore descarta las ediciones no confirmadas en tu directorio de trabajo. Ejecuta git restore path/to/file.js para eliminar los cambios no guardados en ese archivo y devolverlo al último estado confirmado. Agrega la opción --staged para quitar un archivo del área de preparación sin tocar las ediciones en disco: git restore --staged path/to/file.js.

git checkout (sintaxis más antigua, todavía muy utilizada) puede hacer lo mismo con un archivo individual: git checkout -- path/to/file.js. También permite saltar a un commit o rama específica, lo cual es útil cuando quieres inspeccionar un estado anterior sin borrar tu trabajo actual.

Cuando creas que has perdido un commit, git reflog es tu red de seguridad. El reflog (abreviación de "registro de referencias") registra cada posición a la que HEAD ha apuntado alguna vez, incluidos los commits "eliminados" por un reset o rebase. Flujo de recuperación habitual:

Puntos clave
  • git restore descarta los cambios no confirmados del directorio de trabajo
  • --staged quita del área de preparación sin borrar las ediciones
  • git reflog lista todas las posiciones de HEAD, incluidos los commits perdidos
  • crear siempre una rama desde un hash del reflog en lugar de hacer un reset hard

Cuando empezar de cero

Una sesión de Claude Code acumula contexto (el historial completo de mensajes, llamadas a herramientas y lecturas de archivos que se mantienen en memoria). Cuando ese contexto se vuelve obsoleto, contradictorio o simplemente demasiado grande, continuar la sesión consume más tokens y produce peores resultados que abrir una nueva.

Preste atención a estas señales de que intentar salvar la sesión es la decisión equivocada:

Empezar de cero no significa perder su trabajo. Los resúmenes compactos le permiten llevar las decisiones esenciales a la nueva sesión sin el ruido innecesario. Use /compact antes de salir para comprimir la conversación y luego copie el resumen al inicio de su próxima sesión.

La regla práctica: si ha pasado más tiempo discutiendo con la sesión que escribiendo código, reinicie. Una sesión limpia con un prompt de traspaso bien redactado (un párrafo breve que describa lo que se hizo y lo que viene a continuación) es más rápida que mantener viva una sesión defectuosa.

Puntos clave
  • Los bucles repetitivos indican deterioro del contexto, no un problema de código.
  • Use /compact para comprimir el historial antes de salir.
  • Un prompt de traspaso transmite decisiones sin ruido innecesario.
  • Tres fallos de herramientas en cascada son una señal para reiniciar.
Trabaja conmigo

Domina Claude, Claude Code y los LLM, desde tu primer prompt hasta la orquestacion multiagente.

Te gusta este curso? Lo cree de principio a fin. Necesitas una web app, una app movil, automatizacion con IA o SEO/GEO? Hablemos.

Contactame en LinkedInVer un sitio que hice