Project inference takes place in _determine_default_project(), which hands off to _compute_engine_id(). That returns the correct value -- but as bytes. The Client class checks if the project value is a str (using six.string_types) and raises an error because it is not (that code is here).
Project inference takes place in _determine_default_project(), which hands off to _compute_engine_id(). That returns the correct value -- but as
bytes. TheClientclass checks if the project value is astr(usingsix.string_types) and raises an error because it is not (that code is here).