Почему всегда возвращает TRUE?
Не знаю ангуляр.
Но если вы ожидаете выполнение .error, сервер должен вернуть код http ошибки.
просто false тоже значение и не означает что это ошибка
Без кода ошибки клиент думает что все ок)