The reason I didn't use rich:clientId is that newLanguageInput is not a jsf component. It's generate by rich:autocomplete with id=newLanguageField.