The problem is that the function in your server-side controller requires an account as input: public static Account saveAccount(Account acc) You are setting this parameter on the action, but you are using the value of what is typed into the `ui:inputText` box, which even if it is an account id, it is not an account object. var newAccount= component.find("AccountId").get("v.value"); action.setParams({"acc" : newAccount});