🩺 Diagnósticos
Objetivo principal: encontrar rápido qué significa un rechazo concreto y qué hay que cambiar, sin tener que interpretar el mensaje.
Cómo está escrito un diagnóstico
Ningún mensaje de esta plataforma dice solo «error». Todos traen tres partes, y esa es la regla que los gobierna:
Están escritos para dárselos tal cual al alumno. No enseñan rutas del servidor ni nada de los modelos de otros: hay comprobaciones automáticas de las dos cosas, y de que dos causas distintas no produzcan el mismo texto.
Los diez diagnósticos
Al preparar los paquetes
| Causa | Qué lo provocó | Qué hacer |
|---|---|---|
dependencia-insatisfacible | Uno de los paquetes declarados no se pudo obtener | Revisa el nombre y la versión en tu declaración. Si lo escribiste a mano, comprueba la ortografía |
dependencias-incompatibles | Dos paquetes declarados piden versiones que no pueden coexistir | Elige una sola versión de cada uno. El mensaje nombra los dos en conflicto: no hace falta que los busques |
resolucion-interminable | La preparación superó el tiempo máximo y se detuvo | Fija versiones concretas en vez de dejarlas abiertas: cuantas menos combinaciones haya que explorar, antes termina |
Al comprobar tu función
| Causa | Qué lo provocó | Qué hacer |
|---|---|---|
firma-incompatible | La función encontrada no tiene la forma que la plataforma espera | Ajústala a la firma fija: recibe un único conjunto de valores con nombre. La firma no se puede cambiar; es parte del contrato |
fallo-al-arrancar | Tu código falló al cargarse, antes de atender ninguna petición | Comprueba qué hace tu código al cargarse: leer un fichero que no acompaña a tu entrega es la causa más habitual |
Al invocar el modelo
| Causa | Qué lo provocó | Qué hacer |
|---|---|---|
entrada-invalida | Algún valor recibido no es una magnitud numérica | Los valores de entrada son magnitudes del edificio y deben ser números. Revisa cómo los envía quien te invoca |
salida-invalida | La respuesta no es un conjunto de valores con nombre | Devuelve un diccionario con un nombre por cada valor. Una tupla llegaría sin nombres y nadie sabría qué es cada cosa |
respuesta-demasiado-grande | La respuesta supera el tamaño máximo admitido | Devuelve menos campos o valores más cortos. Si se emitiera tal cual, quien te invoca la recortaría sin avisar |
Al publicar
| Causa | Qué lo provocó | Qué hacer |
|---|---|---|
version-viva-ya-existe | Ya tienes una versión de ese modelo sirviendo | Retira primero la que está sirviendo y vuelve a publicar. Mira la autoría: la versión viva de otro alumno con el mismo nombre no te bloquea |
version-ya-usada | Ese identificador ya se usó y su versión está retirada | Publica de nuevo sin nombrar la versión: la plataforma asigna un identificador libre |
Dos cosas que conviene saber sobre esta tabla
resolucion-interminable está declarado en el catálogo pero no lo emite nadie. La capa que
construye solo distingue tres causas —paquete que no se obtiene, versiones incompatibles y todo
lo demás— y una preparación que se pasa de tiempo acaba clasificada como fallo genérico, no como
esta causa.
Está aquí porque el catálogo lo declara y porque saberlo ahorra buscar un mensaje que no llegará. Que el vocabulario exista antes que su emisor es deliberado en este proyecto; que nadie lo emita todavía, no.
Los rechazos quedan registrados. Cada intento de publicación deja un asiento en Actividad, con su causa. Si un alumno dice «me lo rechazó y no sé por qué», ahí está.
Cuando no hay diagnóstico
No todo fallo produce una de estas diez causas. Dos casos concretos:
| Qué pasa | Qué ves | Por qué |
|---|---|---|
| La dirección del modelo no responde al invocarlo | Un 502 y ningún asiento | La plataforma no inventa un diagnóstico sobre algo que no ha podido observar |
| La publicación revienta con un fallo no previsto | Un mensaje genérico y ningún asiento | Se le dice al alumno que no es culpa de su código y que avise a quien le da clase |
En los dos casos, lo que hay que mirar es la salida del propio contenedor, no el manual.
El orden en que se comprueban
Importa, porque determina cuál de los diez recibes cuando fallan varias cosas a la vez: se para en la primera.
- ¿Ya tienes una versión viva de este modelo? →
version-viva-ya-existe - La forma del material entregado
- La declaración de dependencias
- La firma de tu función →
firma-incompatible - La construcción → las tres causas de paquetes, o
fallo-al-arrancar
Está desarrollado, con el porqué de cada puerta, en Lo que comprueba.