Repository navigation
No jobReference when timeout #432
Description
Activity
- addedtype: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.Error or flaw in code with unintended results or allowing sub-optimal usage patterns.api: bigqueryIssues related to the BigQuery API.Issues related to the BigQuery API.
on Mar 10, 2015 Is this fixed in #431?
It's another issues. it's not fixed in #431
I want to ask the response from google bigquery, according to https://cloud.google.com/bigquery/querying-dataIf the query timeout expires before the query has finished, the method will return jobComplete=false, and you must call jobs.getQueryResults as described next. The query job will continue to run even after the timeout period until it finishes, either successfully or because an error has occurred.
I have tested on it before, the response does not return the jobReference.jobId. So it cause undefined error in this line https://github.com/GoogleCloudPlatform/gcloud-node/blob/v0.12.0/lib/bigquery/index.js#L394
Okay, thanks for explaining, and sorry for the delay. I'll take a look at this asap.
I can't reproduce so far. I ran a query and specified
timeoutMs: 0to force a jobComplete = false. The response from the API returned, as expected,jobComplete = false, butjobReferencewas always present.According to the API docs (Search "jobReference": https://cloud.google.com/bigquery/docs/reference/v2/jobs/query):
jobReference: Reference to the Job that was created to run the query. This field will be present even if the original request timed out...
I'm not sure how the response could have come back without that to cause that error. Can you try to reproduce the error using our master branch (
npm install --save googlecloudplatform/gcloud-node), and let me know if you still get the error?Update: Sorry, I see now that this is a different issue with the same symptoms. Move if desired.
I can reproduce on master (b094aa2) with this query:SELECT test_id, log_time, connection_spec.client_ip, connection_spec.server_ip, paris_traceroute_hop.src_ip, paris_traceroute_hop.dest_ip, paris_traceroute_hop.src_hostname, paris_traceroute_hop.dest_hostname FROM [measurement-lab:m_lab.2014_10] WHERE project = 3 AND connection_spec.client_ip = "62.210.74.143" AND connection_spec.server_ip LIKE '217.163.1.%' ORDER BY test_id DESC;
and this code:
bigquery.query(query, function(err, rows, nextQuery) { if (nextQuery) { bigquery.query(nextQuery, function(err, rows, nextQuery) {}); } });
The first query will succeed, and the second will hit this:
TypeError: Cannot read property 'jobId' of undefined at responseHandler (.../gcloud/lib/bigquery/index.js:399:43)This is what the response object looks like for the second query:
{ kind: 'bigquery#getQueryResultsResponse', etag: '"uT9StUUc54UCg_Qc3k6xlS99DVE/s-JNbnKyojd-gIIcRpOEggyGqe4"', jobComplete: false }Sorry for the slow attention to this issue, @jdcc. I'll be taking another look today to try to get to the bottom of this.
I'm unfortunately still unable to reproduce. According to the docs and in my experience, a
jobReferenceis always returned. @jdcc or @sunnychow would one of you be able to provide a consistently reproducible query I can run from a query on public data? As an example, something likeSELECT url FROM [publicdata:samples.github_nested]. Until then, I'm unfortunately unsure how to resolve.I'm seeing it consistently on my system. With my data, of course. I'll see if I can generate an example with public data. Meantime, could you put a guard in the code to check when this situation occurs and output to the console? At is is, we can't even tell which of the queries is the one that is timing out.
If as you say, this situation has not happened in your experience, then that message will never trigger. No harm, no foul. If, on the other hand, the message does trigger, then we can provide you with more details to help resolve the issue.
The error message I am seeing is:
TypeError: Cannot read property 'jobId' of undefined at responseHandler (/usr/local/brightcove/bigquery-metrics/node_modules/gcloud/lib/bigquery/index.js:384:43) at /usr/local/brightcove/bigquery-metrics/node_modules/gcloud/lib/common/util.js:672:11 at Object.handleResp (/usr/local/brightcove/bigquery-metrics/node_modules/gcloud/lib/common/util.js:193:3) at Request._callback (/usr/local/brightcove/bigquery-metrics/node_modules/gcloud/lib/common/util.js:667:12) at Request.self.callback (/usr/local/brightcove/bigquery-metrics/node_modules/gcloud/node_modules/request/request.js:354:22) at Request.EventEmitter.emit (events.js:98:17) at Request.<anonymous> (/usr/local/brightcove/bigquery-metrics/node_modules/gcloud/node_modules/request/request.js:1207:14) at Request.EventEmitter.emit (events.js:117:20) at IncomingMessage.<anonymous> (/usr/local/brightcove/bigquery-metrics/node_modules/gcloud/node_modules/request/request.js:1153:12) at IncomingMessage.EventEmitter.emit (events.js:117:20)@gquinones I've put up a repo for debugging:
stephenplusplus/gcloud-node-bigquery-debug. You can install this with npm in your project to debug:$ npm install --save stephenplusplus/gcloud-node-bigquery-debug
A new error should come through when this issue appears. You can log and paste the
error.responseproperty here to help us see what the API returns.@jgeewax do you know someone who can help us with this issue? In summary, when calling
BigQuery#query, there is evidently sometimes a response from the API (eitherJobs.queryorJobs.getQueryResults) that doesn't includejobReference.According to the JSON API docs,
jobReferenceis guaranteed to exist, but as seen here, it's not coming back.@stephenplusplus Will do.
@stephenplusplus Bad news, I'm afraid:
TypeError: undefined is not a function
at responseHandler (/Users/gquinones/work/bigquery-metrics/node_modules/gcloud/lib/bigquery/index.js:389:15)
at /Users/gquinones/work/bigquery-metrics/node_modules/gcloud/lib/common/util.js:684:11
at Object.handleResp (/Users/gquinones/work/bigquery-metrics/node_modules/gcloud/lib/common/util.js:205:3)
at Request._callback (/Users/gquinones/work/bigquery-metrics/node_modules/gcloud/lib/common/util.js:679:12)
at Request.self.callback (/Users/gquinones/work/bigquery-metrics/node_modules/gcloud/node_modules/request/request.js:354:22)
at Request.emit (events.js:98:17)
at Request. (/Users/gquinones/work/bigquery-metrics/node_modules/gcloud/node_modules/request/request.js:1207:14)
at Request.emit (events.js:117:20)
at IncomingMessage. (/Users/gquinones/work/bigquery-metrics/node_modules/gcloud/node_modules/request/request.js:1153:12)
at IncomingMessage.emit (events.js:117:20)38 remaining items
- added a commit that references this issue
on Feb 5, 2026 - added a commit that references this issue
on Feb 17, 2026 - added a commit that references this issue
on Feb 23, 2026 - added a commit that references this issue
on Feb 24, 2026 - added a commit that references this issue
on Feb 26, 2026 - added a commit that references this issue
on Mar 5, 2026 - added a commit that references this issue
on Mar 27, 2026 - added a commit that references this issue
on Mar 27, 2026
I got the following error when I run a heavy load job which cause a TIMEOUT. Such that the jobComplete is false. And the jobReference is undefined in this case.
https://cloud.google.com/bigquery/querying-data