Nota de Lucía Fernández
Las Server Actions son cómodas, pero es fácil olvidarse de algo importante: cada una es un endpoint público. Nada de lo que recibe viene garantizado por TypeScript en tiempo de ejecución.
Mi regla: validar con Zod al principio de cada acción, sin excepciones, y no confiar en ningún id que llegue del cliente. Después, la autorización real la hace la base de datos con RLS, no la interfaz.
Otra cosa que me sorprendió: redirect() lanza una excepción internamente, así que no lo envuelvas en un try/catch o vas a tragarte la navegación. Lo aprendí después de una tarde entera de debugging.