Is input$user_f returning a character? If it is then that may be causing an issue when trying to use it with the $ operator. When I want to use an input like this, I do it using the [[ subsetting method. I am not really sure if this translate to R6 but this is what I mean:
BSD$set("public", "set.pars", function(f = input$user_f) {
self$pars[[f]] <- c(f, self$pars[[f]])[1]
invisible(self)
})
Also, I am assuming that this is being run in your server code. Which, if not, would be a reason that input$user_f is not recognized.