do you really use this error() callback? if not, we might better remove it.