According to this artcle, onComplete and onError function of the subscribe are mutually exclusive.
onComplete
onError
subscribe
Meaning either onEr
onEr
The only thing which worked for me is this
fetchData() .subscribe( (data) => { //Called when success }, (error) => { //Called when error } ).add(() => { //Called when operation is complete (both success and error) });