Summary
Upgrading firebase-tools from 15.21.0 to 15.22.0 breaks firebase deploy --only dataconnect:... (and the connector compile generally). Every connector that uses the native-SQL root fields (_execute, _executeReturning, _executeReturningFirst, _select, _selectFirst) and the @refresh realtime directive now fails to compile with Cannot query field "_execute" on type "Mutation" / Unknown directive "@refresh".
This is a regression in the bundled Data Connect emulator/toolkit version (3.4.11 → 3.4.12). 15.21.0 (toolkit 3.4.11) compiles and deploys the exact same .gql files without error.
These are documented, current Preview features (see native SQL and the @refresh directive reference). The native-SQL docs explicitly state no experiment/flag/config is required.
Steps to reproduce
- A Data Connect connector with a native-SQL operation, e.g.:
mutation UpdateMovieRating($movieId: UUID!, $newRating: Float!) @auth(level: NO_ACCESS) {
_execute(sql: "UPDATE movie SET rating = $2 WHERE id = $1", params: [$movieId, $newRating])
}
and a query with @refresh(onMutationExecuted: { operation: "...", condition: "..." }).
npx firebase-tools@15.22.0 deploy --only dataconnect:<service>:<connector> --project <id> --non-interactive
Expected
Compiles and deploys, as it does on 15.21.0.
Actual
Error: There are errors in your schema and connector files:
<connector>/mutations.gql:NN: Cannot query field "_execute" on type "Mutation".
<connector>/mutations.gql:NN: Cannot query field "_executeReturning" on type "Mutation".
<connector>/queries.gql:NN: Cannot query field "_select" on type "Query".
<connector>/queries.gql:NN: Unknown directive "@refresh".
Fails for every such operation across all connectors (not only newly edited ones).
Notes
- Enabling the SQL Connect experiments explicitly (
FIREBASE_CLI_EXPERIMENTS=fdcrealtime,fdcift,fdcwebhooks) does not help on 15.22.0.
- Downgrading to
firebase-tools@15.22.0 log shows dataconnect-emulator-3.4.12; 15.21.0 downloads dataconnect-emulator-3.4.11 and works.
- v15.22.0 changelog mentions only the emulator bump to 3.4.12 plus a generated-SDK ordering fix and a relation-filter optimization — no intentional directive change.
Environment
firebase-tools: 15.22.0 (broken) vs 15.21.0 (works)
- Data Connect emulator: 3.4.12 (broken) vs 3.4.11 (works)
- Platform: macOS (darwin)
Workaround
Pin firebase-tools@15.21.0 for Data Connect deploys.
Summary
Upgrading
firebase-toolsfrom 15.21.0 to 15.22.0 breaksfirebase deploy --only dataconnect:...(and the connector compile generally). Every connector that uses the native-SQL root fields (_execute,_executeReturning,_executeReturningFirst,_select,_selectFirst) and the@refreshrealtime directive now fails to compile withCannot query field "_execute" on type "Mutation"/Unknown directive "@refresh".This is a regression in the bundled Data Connect emulator/toolkit version (3.4.11 → 3.4.12). 15.21.0 (toolkit 3.4.11) compiles and deploys the exact same
.gqlfiles without error.These are documented, current Preview features (see native SQL and the
@refreshdirective reference). The native-SQL docs explicitly state no experiment/flag/config is required.Steps to reproduce
@refresh(onMutationExecuted: { operation: "...", condition: "..." }).npx firebase-tools@15.22.0 deploy --only dataconnect:<service>:<connector> --project <id> --non-interactiveExpected
Compiles and deploys, as it does on 15.21.0.
Actual
Fails for every such operation across all connectors (not only newly edited ones).
Notes
FIREBASE_CLI_EXPERIMENTS=fdcrealtime,fdcift,fdcwebhooks) does not help on 15.22.0.firebase-tools@15.22.0log showsdataconnect-emulator-3.4.12;15.21.0downloadsdataconnect-emulator-3.4.11and works.Environment
firebase-tools: 15.22.0 (broken) vs 15.21.0 (works)Workaround
Pin
firebase-tools@15.21.0for Data Connect deploys.