Unexpected behavior with BigQuery node when using "Dry Run"

Hi everyone,

I’ve encountered an unexpected behavior when using the BigQuery node with the “Dry Run” option enabled, and I wanted to check if this is the expected behavior or a potential issue.

Here’s what’s happening:

  • I enable the “Dry Run” option in the BigQuery node.
  • When the workflow executes, the node returns the number of bytes to be processed, as expected.
  • However, it also returns the actual results of the query, which I wasn’t expecting in a dry run.
  • Additionally, when I check the BigQuery UI, the query is marked as billed, which defeats the purpose of a dry run.

For comparison, if I use the HTTP node and call the BigQuery API manually with dryRun: true, the behavior is different:

  • The query is not billed.
  • The query results are not returned, which aligns with the expected dry run behavior.

So I’m wondering:

  • Is this the intended behavior for the BigQuery node in n8n?
  • Or could this be an issue or a misconfiguration on my end?

This could have implications, especially now that BigQuery is available as a tool for AI Agents, since you may not want AI Assistants triggering expensive queries unintentionally. I’m aware of the “maximum bytes billed” setting as a safeguard, but it still feels like dry run should behave differently.

Thanks in advance for your help!

Here is a query you can try in “dry run” with a public dataset. It should be billed approx 1.43 MB, even with the dry run enabled, so be aware of this if you try it :slight_smile:

Information on your n8n setup

  • n8n version: 1.89.2**
  • Database: SQLite
  • n8n EXECUTIONS_PROCESS setting: own, main
  • Running n8n via: Docker

This seems like a bug potentially where its not respecting the dry run optional.

Can you provide the output from the node vs a raw curl request?