AddDoc error not being caught

Open
#3,593 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 3 days

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
angular, firebase, typescript
Domain
databases

Research direction

Start with the saveProjectTest entry point and its await addDoc call, using the supplied AngularFire and Firestore emulator versions. Reproduce the case with the Firebase container stopped, compare the addDoc failure with the explicit throw, and verify whether the expected error reaches the catch block.

Written by the indexing model from the issue text.

Description

Good morning.

In our project, I've been trying to handle the output of an addDoc call using angular/fire. The exception will get caught but not the error thrown by addDoc. When uncommenting the line //throw "patata" the catch block will get executed.

async saveProjectTest(projectTracking: ProjectTracking) {
    const projectTrackingsRef = collection(this.firestore, 'projecttrackings');
    try{
      console.log("here1");
      //throw "patata";
      await addDoc(projectTrackingsRef, projectTracking);    
      console.log("here2");
    }catch(error){
      console.log("caught");
    };
  }

I don't know if it is a bug or what it is, but this is specially important since it seems like the appropriate way to handle connection errors and any other kinds of errors in my app. Right now I can only implement the "happy path".

I'm using Chromium v130, angularfire 18.0.1, with Angular 18.1.3, connecting to a docker container running a firebase emulator. When I want to test no connectivity, I take down the firebase container.

Thanks in advance, appreciate your help.

Dominant language
TypeScript
Stars
7.8k
Forks
2.1k
Avg merge
2d 22h
Merged PRs (30d)
25

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from angular/angularfire

All issues in angular/angularfire

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.