AWS Lambdaのペイロードサイズ制限でSession(databaseドライバー)への保存が失敗する例 ==== - Laravel 11.x - `SESSION_DRIVER=database` - VaporやVercelなどのLambda環境 - データベースはRDS なにかのクラスをそのままセッションに保存しようとすると ```php $large_object = new LargeObject(); session()->put('test', $large_object); return redirect('/'); ``` 書き込みできてなくて読み出せない。 ```php // 別のルート dump(session()->get('test')); // null ``` 「EC2では発生しない」「VaporでもVercelでも同じく発生」なので原因はLambdaと予想。 そんなに大きなクラスではないはずだけど保存時に`serialize()`と`base64_encode()`してるので想定より大きくなってるのかも。 Lambdaだとこれ以上調査しにくいのでLambdaからデータベースへの書き込みで失敗していることだけ確定できればいい。 ## 対策 配列で保存すれば成功する。 ```php session()->put('test', []); ```