ncgi version 1.3.2
There is a typo on line 28 of the proc ncgi::nvlist:
set val [string range $x 1 end]]
Note the extra close bracket at the end of the statement.
Due to the strange coincidence of Tcl bug 3513146, this does not throw an error, but instead leads the proc to return a corrupt value.