Hi all I converted my Dancer app to Dancer2 and have no issues when using Dancer2::Session::Simple. Sessions persist across routes. However, on switching to Dancer2::Session::Memcached, after setting the session via the /login route, it's not accessible via another route. I know that the Memcached instance is functional, having tested it using a regular Perl script with Cache::Memcached. Any ideas? I don't see any errors from Dancer. Details: Dancer2 (0.03) cd /srv/web/app1/core/ setuidgid web1 ./bin/app.pl Tokyo Cabinet 1.4.48 Tokyo Tyrant 1.1.41 setuidgid web1 ttserver -host /srv/web/app1/sock/sessions.sock -port 0 /srv/web/app1/data/casket.tch pertinent part of config.yml logger: "console" log: "core" warnings: 1 show_errors: 1 session: Memcached engines: session: Memcached: memcached_servers: /srv/web/app1/sock/sessions.sock This works: post '/login' => sub { if (authen(params->{'user'}, params->{'pass'}) { session 'user' => params->{'user'}; return 'user = ' . session('user'); } else { return redirect '/login'; } } These 2 routes always end up back at /login: post '/login' => sub { if (authen(params->{'user'},params->{'pass'}) { session 'user' => params->{'user'}; return redirect '/dashboard'; } else { return redirect '/login'; } } get '/dashboard' => sub { if (not session('user')) { return redirect '/login'; } # do something } Even replacing the last route with the following, leaves an empty session (i.e. user is BLANK). get '/dashboard' => sub { return 'user is ' . session('user'); } Dale