google-cloud-python
google-cloud-python copied to clipboard
bug: shouldn't be trying blank project ID when no project ID is found
I get a NotFound error where pandas-gbq has tried to send a query with an empty string as the project ID. This could be improved to show a better error message that the project ID was not properly detected.
---------------------------------------------------------------------------
NotFound Traceback (most recent call last)
[/usr/local/lib/python3.10/dist-packages/pandas_gbq/gbq.py](https://localhost:8080/#) in run_query(self, query, max_results, progress_bar_type, **kwargs)
468 logger.debug("Requesting query... ")
--> 469 query_reply = self.client.query(
470 query,
13 frames
NotFound: 404 POST https://bigquery.googleapis.com/bigquery/v2/projects//jobs?prettyPrint=false: <!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 404 (Not Found)!!1</title>
<style>
*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//[www.google.com/images/errors/robot.png](http://www.google.com/images/errors/robot.png)) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//[www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png](http://www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png)) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//[www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png](http://www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png)) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//[www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png](http://www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png)) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//[www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png](http://www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png)) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
</style>
<a href=//[www.google.com/](http://www.google.com/)><span id=logo aria-label=Google></span></a>
<p><b>404.</b> <ins>That’s an error.</ins>
<p>The requested URL <code>/bigquery/v2/projects//jobs?prettyPrint=false</code> was not found on this server. <ins>That’s all we know.</ins>
Location: None
Job ID: a28c0f2b-09b4-4346-97a3-0569b95b32cb
During handling of the above exception, another exception occurred:
GenericGBQException Traceback (most recent call last)
[/usr/local/lib/python3.10/dist-packages/pandas_gbq/gbq.py](https://localhost:8080/#) in process_http_error(ex)
384 raise QueryTimeout("Reason: {0}".format(ex))
385
--> 386 raise GenericGBQException("Reason: {0}".format(ex))
387
388 def download_table(
GenericGBQException: Reason: 404 POST https://bigquery.googleapis.com/bigquery/v2/projects//jobs?prettyPrint=false: <!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 404 (Not Found)!!1</title>
<style>
*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//[www.google.com/images/errors/robot.png](http://www.google.com/images/errors/robot.png)) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//[www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png](http://www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png)) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//[www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png](http://www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png)) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//[www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png](http://www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png)) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//[www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png](http://www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png)) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
</style>
<a href=//[www.google.com/](http://www.google.com/)><span id=logo aria-label=Google></span></a>
<p><b>404.</b> <ins>That’s an error.</ins>
<p>The requested URL <code>/bigquery/v2/projects//jobs?prettyPrint=false</code> was not found on this server. <ins>That’s all we know.</ins>
Location: None
Job ID: a28c0f2b-09b4-4346-97a3-0569b95b32cb
Reclassifying this as a feature request, because it's correctly returning 404s when no project ID is supplied. Agree that it could be improved, but also, we have been trying to shift away from custom error handling and just return the errors the server provides. Unclear what our options are here in terms of streamlining this.
Related: https://github.com/googleapis/google-cloud-python/issues/14497