Почему не сработал finilize при неуспешном запросе http?

Метод, вызываемый по клику:

 public update(): void {
            this.loading = true;
            this.applicationBuildingsService
                .update(this.form.value)
                .pipe(
                    finalize(() => {
                        this.loading = false;
                    }),
                )
                .subscribe(
                    (response) => {
                        this.messageService.showMessage('', 'Операция прошла успешно', 'success');
                        this.dialogRef.close(response);
                    },
                    () => {
                        this.messageService.showMessage('', 'Операция прошла неуспешно', 'error');
                    },
                );
        }

Сервис:

   update(data: Building): Observable<any> {
        let headers = new HttpHeaders();

        if (data.ts) {
            headers = headers.append('TS', data.ts);
        }

        return this.http.post(`${this.baseUrl}/update`, data, { headers });
    }

Почему - если сервак выдает http < 200 то:

finalize(() => {
    this.loading = false;
}),

Не срабатывает и не меняет статус переменной this.loading = false;


Ответы (0 шт):