Skip to content

[bigquery] Unhandled NullPointerException at BigQueryImpl.create(BigQueryImpl.java:455) #13425

@sanjaykannan-striim

Description

@sanjaykannan-striim

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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