š§ Solución Error "immutable" en Next.js 16.1.1 con Turbopack
ā Errorā
Runtime TypeError: immutable
š Causaā
Este error puede ocurrir cuando:
- Se intenta modificar objetos inmutables (headers, cookies) en el middleware
- Hay problemas de compatibilidad entre Clerk y Turbopack en Next.js 16.1.1
- El cache de Next.js estĆ” corrupto
ā Soluciones Aplicadasā
1. Actualización del Middlewareā
Se actualizó src/middleware.ts para usar .toString() en las URLs de redirección:
// Antes (puede causar error immutable)
return Response.redirect(signInUrl, 307);
// DespuƩs (solucionado)
return Response.redirect(signInUrl.toString(), 307);
2. Limpieza de Cacheā
Si el error persiste, limpia el cache:
rm -rf .next node_modules/.cache
pnpm dev
3. Verificar Versionesā
AsegĆŗrate de tener las versiones correctas:
pnpm list next @clerk/nextjs
DeberĆas tener:
next@16.1.1@clerk/nextjs@^5.0.0
š Si el Error Persisteā
Opción 1: Deshabilitar Turbopack Temporalmenteā
pnpm dev:webpack
Opción 2: Actualizar Next.jsā
Si el problema persiste, considera actualizar a una versión mÔs reciente:
pnpm add next@latest
Opción 3: Verificar Configuración de Clerkā
Asegúrate de que las variables de entorno estén correctas:
# .env.local
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
š Notasā
- Este error es conocido en Next.js 16.1.1 con Turbopack
- La solución aplicada deberĆa resolver el problema en la mayorĆa de casos
- Si persiste, puede ser necesario actualizar Next.js o deshabilitar Turbopack temporalmente