Does anyone encounter the problem on Endpoints with authentication?

193 views
Skip to first unread message

Colin Su

unread,
Nov 17, 2013, 11:41:45 PM11/17/13
to google-a...@googlegroups.com

I encountered a problem recently, and it will let us couldn't testing our Endpoints API locally, but production is still okay.

We didn't change any code at that time (maybe), but it just become not working anymore.

The problem is while I'm accessing endpoints API with authentication by OAuth2, it will shows this exception and broke:

Traceback (most recent call last):
  File "/Users/littleq/opt/google-cloud-sdk/platform/google_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 1302, in communicate
    req.respond()
  File "/Users/littleq/opt/google-cloud-sdk/platform/google_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 831, in respond
    self.server.gateway(self).respond()
  File "/Users/littleq/opt/google-cloud-sdk/platform/google_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 2115, in respond
    response = self.req.server.wsgi_app(self.env, self.start_response)
  File "/Users/littleq/opt/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 269, in __call__
    return app(environ, start_response)
  File "/Users/littleq/opt/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/request_rewriter.py", line 311, in _rewriter_middleware
    response_body = iter(application(environ, wrapped_start_response))
  File "/Users/littleq/opt/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/request_handler.py", line 97, in __call__
    self._flush_logs(response.get('logs', []))
  File "/Users/littleq/opt/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/request_handler.py", line 233, in _flush_logs
    apiproxy_stub_map.MakeSyncCall('logservice', 'Flush', request, response)
  File "/Users/littleq/opt/google-cloud-sdk/platform/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 94, in MakeSyncCall
    return stubmap.MakeSyncCall(service, call, request, response)
  File "/Users/littleq/opt/google-cloud-sdk/platform/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 328, in MakeSyncCall
    rpc.CheckSuccess()
  File "/Users/littleq/opt/google-cloud-sdk/platform/google_appengine/google/appengine/api/apiproxy_rpc.py", line 156, in _WaitImpl
    self.request, self.response)
  File "/Users/littleq/opt/google-cloud-sdk/platform/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 200, in MakeSyncCall
    self._MakeRealSyncCall(service, call, request, response)
  File "/Users/littleq/opt/google-cloud-sdk/platform/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 234, in _MakeRealSyncCall
    raise pickle.loads(response_pb.exception())
RuntimeError: UnicodeDecodeError('utf8', "id_token verification failed: Can't parse header: \xc9\xad\xbd", 52, 53, 'invalid start byte')


but without authentication it works fine. Anybody got some idea about this?

Vinny P

unread,
Nov 19, 2013, 12:26:54 AM11/19/13
to google-a...@googlegroups.com
On Sun, Nov 17, 2013 at 10:41 PM, Colin Su <littl...@gmail.com> wrote:
I encountered a problem recently, and it will let us couldn't testing our Endpoints API locally, but production is still okay.
We didn't change any code at that time (maybe), but it just become not working anymore.



What version of the local development server are you currently using?
 
 
-----------------
-Vinny P
Technology & Media Advisor
Chicago, IL

App Engine Code Samples: http://www.learntogoogleit.com
 

Puzz Loq

unread,
Nov 20, 2013, 4:31:02 PM11/20/13
to google-a...@googlegroups.com
I have absolutely the same problem. Tried both 1.8.7 and 1.8.8 SDK on Mac 1.9. All HTTP requests with OAuth token to Endpoints fail with that decoding error. 

This is with 1.8.8 Python SDK 

Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 162, in _handle_POST
    api_response = _execute_request(request).Encode()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 120, in _execute_request
    make_request()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 115, in make_request
    request_id)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub.py", line 128, in MakeSyncCall
    method(request, response, request_id)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/logservice/logservice_stub.py", line 200, in _Dynamic_Flush
    self._insert_app_logs(request_id, group.log_line_list())
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub.py", line 165, in WrappedMethod
    return method(self, *args, **kwargs)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/logservice/logservice_stub.py", line 211, in _insert_app_logs
    '(?, ?, ?, ?)', new_app_logs)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/logservice/logservice_stub.py", line 208, in <genexpr>
    for log_line in log_lines)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/logservice/logservice_stub.py", line 218, in _tuple_from_log_line
    message = message.decode('utf-8')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xbd in position 52: invalid start byte

RuntimeError('UnicodeDecodeError(\'utf8\', "id_token verification failed: Can\'t parse header: \\xc9\\xad\\xbd", 52, 53, \'invalid start byte\')',) 



The whole mess is caused by Encode() in api_server.py line 162. It adds some invalid symbols at the beginning and at the end. But HTTP request and token look OK. And actually code haven't changed for me. For me 2 things changed before this error started to appear:
1. I migrated code to Git repository
2. I updated to 1.8.7
3. I updated to Mac 1.9

And now I have no idea how to get rid of this error.

David Neale

unread,
Nov 21, 2013, 9:27:32 AM11/21/13
to google-a...@googlegroups.com
I'm getting this on version 1.8.8 of the SDK.

Colin Su

unread,
Nov 25, 2013, 2:35:29 AM11/25/13
to google-a...@googlegroups.com
I tried both 1.8.7 and 1.8.8

Ilya Nesterov

unread,
Dec 10, 2013, 7:45:51 PM12/10/13
to google-a...@googlegroups.com
Just checked 1.8.8 on linux. Works fine. I was able to reproduce your error using 1.8.7 version. so feel free to update

Ilya Nesterov

unread,
Dec 10, 2013, 8:02:21 PM12/10/13
to google-a...@googlegroups.com
My bad. 1.8.8 didn't fix the issue. Here is a tested patch https://code.google.com/p/googleappengine/issues/detail?id=10285
Reply all
Reply to author
Forward
0 new messages