Skip to content

Data Connect: emulator 3.4.12 (firebase-tools 15.22.0) rejects valid native-SQL/realtime directives (_execute, _select, @refresh) — regression vs 3.4.11 #10689

@vytautas-bunevicius

Description

@vytautas-bunevicius

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

  1. 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: "..." }).
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions