Saltar al contenido principal

šŸ”§ Solución Error "immutable" en Next.js 16.1.1 con Turbopack

āŒ Error​

Runtime TypeError: immutable

šŸ” Causa​

Este error puede ocurrir cuando:

  1. Se intenta modificar objetos inmutables (headers, cookies) en el middleware
  2. Hay problemas de compatibilidad entre Clerk y Turbopack en Next.js 16.1.1
  3. 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