I can't explain it...I'm running on php 8.2.0 and have no problems. The @ symbol in php is an error control operator. It basically means "don't show an error and just skip this line if there is one"
The "@" is not necessary. We have it there in case the session is already started to prevent the "Session already started" error. You can safely remove it.
I'll try updating to php 8.2.5 to see if I can reproduce the issue to look into it further.