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