I looked at the source for CGI::Session and CGI::Session::File. The error is originating from CGI::Session::File::remove which is called when a deleted session is DESTROYed. However, the session you just created was never saved, so there's no file to delete yet. So, instead of deleting the new sessions (or trying to), I'd just make sure it never gets saved:
...
if ( $session->is_new() ) {
# Make CGI::Session think no save is needed
# by simulating a call to flush.
$session->{_STATUS} = &CGI::Session::SYNCED;
# Make sure we don't use the session by accident.
undef $session;
} else {
...
Other solutions:
|