firebase / firebase/extensions

[bigquery-firestore-export kit] A failed lifecycle task still reports a successful deploy

Open Beginner friendly
#2,972 0 comments 0 reactions 0 assignees View on GitHub
type: bug
Dominant language
TypeScript
Stars
979
Forks
433
Avg merge
1d 13h
Merged PRs (30d)
125

Description

In the `bigquery-firestore-export` kit (`@firebase/bigquery-firestore-export`, on the `kits` branch), a lifecycle task that fails does not fail the deploy, so a rejected reconfiguration leaves no sign that anything went wrong.

### What happens

Clearing a `PARTITIONING_FIELD` that was previously set is not supported by the BigQuery Data Transfer API, and `kits/bigquery-firestore-export/src/dts.ts` throws for it deliberately. On a live project, `firebase deploy` still printed "Deploy complete!" and exited 0.

The failure stays inside the `upsertTransferConfig` task, which retried five times over 7m31s (30s, 60s, 120s, 240s backoff) before giving up at its `maxAttempts: 5` (`src/index.ts`). The transfer config and its Firestore document were left at the last good state.

Two things make it worse than a one-off:

- It is sticky. The empty value stays in `.env`, so every later deploy fails the same way, still silently, until the user restores a value that nothing tells them.
- The guard throws before any API call, so the error is deterministic and the five retries cannot help.

### Fix

Log a warning and return instead of throwing on a request that is known to be unsupported, which at least avoids five pointless retries. Surfacing lifecycle-task failures at deploy time needs a channel back to the CLI and is not fixable in the kit alone.

Contributor guide

Open the contributing guide

Research direction

Start in kits/bigquery-firestore-export/src/dts.ts at the deliberate throw for clearing PARTITIONING_FIELD, then read src/index.ts to understand the upsertTransferConfig retry behavior. Run the described firebase deploy scenario and verify the unsupported request logs a warning, returns without five retries, and leaves the existing transfer configuration unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
google-cloud, typescript
Domain
cloud, devops
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
84/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.