Что возвращает ваш tokenService? Это может быть обработка любых ошибок из вызова API внутри. CatchError должен работать, пока ваш вызов API не скрывает событие ошибки. В этом случае вам может потребоваться выбросить ошибку из этой службы с помощью Observable.throw ().
Обычно я форматирую свои эффекты более для удобства чтения.
@Effect() updateUser$: Observable<Action>;
constructor(action$: Actions, tokenService: TokenService) {
this.updateUser$ = action$.ofType(fromUser.UPDATE_USER_ACTION)
.pipe(
mergeMap((action: fromUser.UpdateUserAction) =>
tokenService.patch(`users/${this.user.id}`, action.payload)
.pipe(
map(response => {
this._router.navigate(
["dashboard", "users", "view"],
{ queryParams: { id: response.json().message.id } });
return new fromUser.UpdateUserCompleteAction(response.json().message);
},
catchError(error =>
of(new fromUser.UpdateUserFailedAction(error.json().message))
)
)
)
)
);
}
Этот код выглядит так, как будто он должен работать. Взгляните на свой TokenService.