Solución de problemas
Parte del síntoma: un módulo responde 404, un release nunca queda listo, un trabajo espera o se detiene, se rechaza el acceso o dejan de llegar eventos.
- Disponibilidad: Planificado
- Evidencia: Leído del código fuente
- Guía práctica
Cómo usar esta página
Busca tu síntoma, haz las comprobaciones seguras y luego sigue la recuperación. Todas las comprobaciones de esta página son lecturas: ningún GET inicia trabajo, así que no puedes empeorar nada por mirar. Nada de lo que dice esta página te pide eliminar una aplicación, volver a publicar un paquete ni reintentar a ciegas después de un tiempo de espera agotado.
Ten a mano los identificadores: la aplicación, el release y su number, el trabajo, y la URL exacta con su consulta.
Un módulo responde 404
| Código | Causa | Recuperación |
|---|---|---|
OUTPUT_NOT_AVAILABLE |
El CDN conoce el módulo y no tiene esta salida. El conjunto de opciones no se preparó, o el recurso no está declarado. | Compara tu consulta con la consulta canónica con la que se preparó tu release. Prepara un release que incluya la salida. Recargar no ayuda. |
MODULE_NOT_FOUND |
La subruta no es un módulo público de esa versión del paquete | Revisa los módulos públicos del paquete. Un archivo interno no se puede direccionar. |
VERSION_MISMATCH |
El paquete se conoce en otra versión | Lee la resolución de tu release para ver la versión fijada |
PACKAGE_NOT_FOUND |
El paquete no forma parte de nada que el servicio tenga | Revisa el nombre y el prefijo del registro |
Si la misma URL funciona en tu Dev Server y no en el CDN, eso es lo esperado para una salida que falta: el Dev Server compila al solicitar y el CDN nunca lo hace. Consulta La misma URL, en local y en el CDN.
Una solicitud responde 400
OPTION_INVALID significa que la consulta está mal: un valor mal escrito, una opción repetida o desconocida, un target o un format que falta, o cualquier consulta en un recurso estático. OPTION_UNSUPPORTED significa que la consulta está bien y que este servicio nunca produce esa salida. En un Dev Server la causa habitual es omitir env=development&min=false. Consulta Opciones de la solicitud.
Un release nunca queda listo
Lee el release, y luego su trabajo y su inventario.
| Qué encuentras | Significado | Recuperación |
|---|---|---|
Trabajo failed con DYNAMIC_IMPORT_UNKNOWN; counts.unknown del inventario mayor que cero |
Un import dinámico tiene un destino que el rastreo estático no puede determinar | Registra de nuevo con un miembro declared que enumere, para el módulo público que importa, los módulos públicos que puede cargar. Si el paquete es tuyo, puedes poner la misma declaración en su manifiesto de módulo y publicar una versión nueva. |
BUILD_FAILED con diagnósticos |
Un módulo no compila | Corrige la fuente. Los errores de compilación se informan en todos los planes. |
CLOSURE_INCOMPLETE |
Una salida requerida falta, falló o no se puede obtener | Busca en el inventario los elementos en estado failed o limit_exceeded |
INTEGRITY_MISMATCH |
Un archivo descargado no coincide con la integridad fijada | No lo fuerces. Revisa el registro y registra de nuevo. |
RESOLUTION_FAILED |
No se pudo fijar el grafo | Lee el mensaje: una versión que no existe, rangos en conflicto o un peer sin satisfacer. Ajusta las selecciones o los overrides. |
UPSTREAM_UNAVAILABLE |
Un registro no respondió para una entrada que no estaba en caché | Intenta el registro o la preparación más tarde, con el mismo Idempotency-Key si es posible que la primera solicitud se haya aceptado |
En todos los casos el release activo no cambia, y tu sitio lo sigue sirviendo.
Un trabajo espera mucho tiempo
queued y waiting_turn son normales en el plan gratuito: los trabajos comparten una cola sin SLA, y cada aplicación trabaja en turnos cortos. queue.position y turns del trabajo te indican dónde está. Cerrar la pestaña no cambia nada; el trabajo no depende de ella.
Un trabajo termina en limit_exceeded
Un módulo no pudo terminar dentro del presupuesto de ejecución del plan. No se reintenta automáticamente, porque fallaría de la misma manera. Reduce lo que ese módulo público incorpora, o solicita ejecución premium mediante la lista de espera.
Una solicitud es rechazada
| Respuesta | Significado |
|---|---|
401 UNAUTHENTICATED |
La solicitud de administración no tiene una sesión válida |
403 FORBIDDEN |
Puedes ver el recurso, y tu rol no tiene la capacidad. Consulta la tabla de capacidades. |
404 NOT_FOUND en algo que esperabas encontrar |
Es posible que no debas saber que existe. Comprueba que estás en la organización correcta. |
403 ENTITLEMENT_REQUIRED |
El plan no incluye la capacidad indicada en details.entitlement |
402 CREDIT_INSUFFICIENT, 503 BUDGET_EXHAUSTED |
La admisión rechazó el trabajo. No se inició nada y no se cobró nada. |
409 CONFLICT_VERSION |
Alguien cambió el recurso primero. Léelo de nuevo; no reenvíes con el número nuevo sin mirar. |
401 ACCESS_REQUIRED, 403 ACCESS_DENIED en la entrega |
La aplicación es privada. 401 significa que no hay cookie de acceso, o que el permiso se agotó: haz el canje de nuevo. 403 significa que el permiso fue revocado o pertenece a otra aplicación. Consulta Acceso privado. |
501 NOT_IMPLEMENTED |
La operación está en el contrato y esta instancia del servicio no monta su área; details.operation la nombra. Reintentar no ayuda. |
Después de un tiempo de espera agotado, no sabes si funcionó
Envía la misma solicitud con el mismo Idempotency-Key. Si la primera se aceptó, recibes su resultado original; si no, se acepta esta. Nunca generes una clave nueva para un reintento: así es como se crean registros y preparaciones duplicados.
Dejaron de llegar eventos
Las notificaciones se pueden perder. Reproduce desde tu cursor; ante CURSOR_EXPIRED o resync.required, carga una instantánea. Si recibiste access.revoked, tu acceso a ese canal terminó. Consulta Reconexión y reproducción y Revocación.
Un dominio propio no se verifica
DOMAIN_UNVERIFIED enumera los valores TXT que la comprobación encontró en observed. Compáralos con verification.value, presta atención al nombre exacto del registro y da tiempo a la propagación del DNS antes de intentarlo de nuevo. El dominio no sirve nada hasta que se verifica.
Qué incluir cuando pidas ayuda
La URL o la operación exacta, el estado y el code, los identificadores de la aplicación, del release y del trabajo, y la hora. Nunca incluyas tokens. Los registros de los trabajos están saneados y es seguro compartirlos dentro de tu organización.