Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

responseTooLarge reason is not output in R/request.r::signal_reason() #209

Closed
ras44 opened this issue Mar 7, 2018 · 1 comment

Comments

@ras44
Copy link
Contributor

commented Mar 7, 2018

When querying a table that contains many fields, I will occasionally receive the ambiguous output:

Internal Error

An example:

  SELECT *
      FROM `bigquery-public-data.samples.github_timeline`

The issue occurs in R/request.r: results are retrieved from bq_get, which calls httr GET and finally process_request. The error that arises from process_request is passed to R/request.r::signal_reason, which signals a condition, but since this condition isn't handled, signal_reason ends with:

stop(message, call. = FALSE)

Unfortunately, the message output is uninformative, it only contains "Internal Error". Helpful information is contained in reason. In this case, it contains responseTooLarge.

This specific issue can be solved by reducing the page_size argument, however my point is that reason contains additional information that is useful for troubleshooting. Outputting reason and not just message in R/request::signal_reason.r would be helpful.

Another option is to handle the bigrquery_responseTooLarge class condition that is signaled, perhaps with a message recommending a smaller page_size argument.

@hadley

This comment has been minimized.

Copy link
Member

commented Mar 28, 2018

Do you want to turn this into a PR? It would be helpful to include a link to the error API docs in a comment.

@hadley hadley closed this in 98dec6f Mar 28, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.