Warning de headers().entries() con Clerk y Next.js 16
Problema
Aparece el siguiente warning en la consola:
Error: Route "/" used 'headers().entries'. 'headers()' returns a Promise and must be unwrapped with 'await' or 'React.use()' before accessing its properties.
Causa
Este es un problema conocido de compatibilidad entre:
- Clerk (v5.0.0)
- Next.js (v16.1.1)
Clerk internamente está usando headers().entries() de forma síncrona, pero Next.js 16 requiere que headers() sea asíncrono y se use con await.
Solución Aplicada
Ya tenemos configurado:
- ✅
export const dynamic = 'force-dynamic'enlayout.tsx - ✅
export const dynamic = 'force-dynamic'enpage.tsx - ✅ Middleware configurado correctamente
Impacto
Este warning NO afecta la funcionalidad de la aplicación. Es solo un mensaje de advertencia en la consola.
El servidor funciona correctamente (como se puede ver en GET / 200).
Referencias
- Next.js 16 - Sync Dynamic APIs
- Clerk GitHub Issues - Búsqueda: "headers() Promise Next.js 16"
Estado Actual
- ✅ Servidor funciona correctamente
- ⚠️ Warning aparece en consola (no crítico)
- ✅ Todas las funcionalidades operativas
Nota
Este warning debería resolverse en futuras actualizaciones de Clerk que sean completamente compatibles con Next.js 16.