Environment details
API/Component: BigQuery
OS type and version: Linux 9 (Red Hat / Oracle Linux)
Java version: Oracle JDK 17
Client version(s):
com.google.cloud
google-cloud-bigquery
2.49.0
Issue details
We are encountering an unhandled java.lang.NullPointerException originating entirely from within the Google Cloud BigQuery client library during a specific operational window.
Our application code layer is null-safe. Before invoking client.create(), we validate that the BigQuery client instance, the QueryJobConfiguration, the query string itself, and the JobId object are all verified non-null. The exception is triggered after control is passed completely to the SDK.
Timeline & Context Observations: Around the exact same timeline this NPE occurred, we observed separate, concurrent jobs failing with standard cloud infrastructure errors: Backend Error, Status Code 14, UNAVAILABLE.
The Problem: While we are not asserting a direct causal link, this runtime instability coincided precisely with the SDK surfacing a raw NullPointerException instead of a structured BigQueryException or standard network exception. This issue has caused severe operational disruption, resulting in the failure of multiple critical customer data pipelines in their production environment.
Stack trace
Caused by: java.lang.NullPointerException
at com.google.cloud.bigquery.BigQueryImpl.create(BigQueryImpl.java:455)
at com.google.cloud.bigquery.BigQueryImpl.create(BigQueryImpl.java:369)
at com.striim.bigquery.utils.BQWriterUtils.runQuery(BQWriterUtils.java:97)
at com.striim.bigquery.task.BQMergeTask.executeTask(BQMergeTask.java:71)
at com.striim.dwhwriter.task.DWHMergeTask.execute(DWHMergeTask.java:20)
at com.striim.dwhwriter.task.DWHTask.executeWithRetries(DWHTask.java:92)
at com.striim.dwhwriter.task.DWHTask.call(DWHTask.java:53)
at java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
Questions for Engineering & Support:
- Is this a known issue? Has a NullPointerException at BigQueryImpl.java:455 been identified or patched in versions subsequent to 2.49.0?
- Under what specific conditions can this happen? Looking at the internal mechanics of BigQueryImpl.create at line 455, what specific API response payloads, empty metadata structures, or internal state conditions can cause this specific line to throw an NPE?
- How can we ensure it surfaces correctly? If this is an edge case where an unexpected gateway state confuses the SDK's response parser, how can we ensure the SDK wraps this gracefully into a standard BigQueryException so our application can handle it via normal retry strategies?
Environment details
API/Component: BigQuery
OS type and version: Linux 9 (Red Hat / Oracle Linux)
Java version: Oracle JDK 17
Client version(s):
com.google.cloud
google-cloud-bigquery
2.49.0
Issue details
We are encountering an unhandled java.lang.NullPointerException originating entirely from within the Google Cloud BigQuery client library during a specific operational window.
Our application code layer is null-safe. Before invoking client.create(), we validate that the BigQuery client instance, the QueryJobConfiguration, the query string itself, and the JobId object are all verified non-null. The exception is triggered after control is passed completely to the SDK.
Timeline & Context Observations: Around the exact same timeline this NPE occurred, we observed separate, concurrent jobs failing with standard cloud infrastructure errors: Backend Error, Status Code 14, UNAVAILABLE.
The Problem: While we are not asserting a direct causal link, this runtime instability coincided precisely with the SDK surfacing a raw NullPointerException instead of a structured BigQueryException or standard network exception. This issue has caused severe operational disruption, resulting in the failure of multiple critical customer data pipelines in their production environment.
Stack trace
Questions for Engineering & Support: