Also, i don't understand why session-value does not return the saved string value but generates the "internal error", try this:
(defun f ()
(let ((username (hunchentoot:parameter "username"))
(session (or hunchentoot:*session* (hunchentoot:start-session))))
(if username
(setf (hunchentoot:session-value 'sessu session) username))
(format 'nil "session:~a value:~a~%"
session
(hunchentoot:session-value 'sessu session))))
First send the username:
http://127.0.0.1:5050/l?username=jose
after that, get the saved session value
http://127.0.0.1:5050/l