Cuando trabajas con Next.js 16, te encuentras con problemas que no lanzan excepciones ni errores visibles, y esto puede volverte loco.

El truco

// ANTES: Código sin logs ni manejo de errores adecuado
export async function getServerSideProps(context) {
  const data = await fetchData(); // Supón que fetchData puede fallar
  return { props: { data } };
}

// DESPUÉS: Código con logs y manejo de errores
export async function getServerSideProps(context) {
  try {
    const data = await fetchData();
    return { props: { data } };
  } catch (error) {
    console.error("Error en getServerSideProps:", error);
    return {
      props: { data: null, error: 'Error al obtener los datos' }
    };
  }
}

Implementa un bloque try-catch para capturar errores en funciones asíncronas como getServerSideProps. Logea el error con console.error para obtener trazas del problema. Además, maneja la posibilidad de que los datos no se obtengan correctamente devolviendo un valor alternativo o mensaje de error en props. Estos cambios te ayudan a identificar y solucionar errores silenciosos que de otro modo pasarían desapercibidos.

Con este enfoque, conviertes errores invisibles en problemas manejables, ahorrándote tiempo y frustración al depurar.