RegisterSessionCleanupCron opens a transaction via db.NewSession() but never calls s.Commit(). The deferred s.Close() auto-rolls-back, making the DELETE a no-op. Add the missing commit.