Discordへの通知付けた頃だと思うけど本番でもdebugbarが表示されていた。当然そんな変なミスするわけないのでなんらかのバグに遭遇していた。
最初は5.8以降env周りの修正してるLaravelのバグかと思ったけど違った。他のパッケージにenv()が存在してそっちが使われていて壊れた。完全に動かないならすぐ分かるけど同じ目的の微妙な仕様違いなのでこれは気付けない。
APP_DEBUG=false
とREDIS_PASSWORD=null
が変だったけどLaravel独自実装の部分を見ればなるほど…。
env
これを使わなかったらfalseでもtrue扱い。nullはstring。
他のenv()をインストールしないように変更して解決。
これなら他のプロジェクトでも発生しそうだけどDiscord botはLaravelそのままではなく小規模に使って.envの項目も少なくfalseもnullもないので影響はなかった。illuminate/supportとしてインストールした場合はLaravelのenv()が使われてたけど名前か何かで順番は決まってるだろうからただの偶然。
その後
5.9で Illuminate\Support\Env が追加される。というか自分が追加した。5.8でもいいはずだけど5.9行きになった。これで他にenv()が存在しても回避手段は用意された。env()を非推奨にすると全configファイルの変更が必要で影響が大きいのでそこまではしない。5年以上使って今回初めて気付いたくらいなので遭遇頻度は低い。5.9までに他の人が非推奨にするかもしれないけど。