Si, .. las variables de sesión expiran. (Lo define session.gc_maxtimelife en tu php.ini . y depende de como propagues el SID ..)
Pero .. para detectar esea situación tu deberías hacer algún tipo de checkeo ...
Código PHP:
session_start();
if (!empty($_SESSION['variables_sesion'])){
// haces tu INSERT/UPDATE a tu BBDD...
} else {
// Su sesión expiró ...
}
Por otro lado .. un "olvido" de algún session_start() en algún script de tu proceso haría inaccesible tus variables de sesión .. y .. si no "validas" de alguna forma en todos tus scripts su existencia .. podría ser este el problema también.
Un saludo,