Closed axet closed 5 months ago
Before you submit bug reports: https://vdirsyncer.pimutils.org/en/stable/contributing.html
Things to include in your bugreport:
[general] status_path="~/.config/vdirsyncer/status" [storage local_calendar] type = "filesystem" path = "~/encfs/cfg/calendar/" fileext = ".ics" [storage local_contacts] type = "filesystem" path = "~/encfs/cfg/contacts" fileext = ".vcf" [storage google_calendar] type = "google_calendar" token_file = "~/.config/vdirsyncer/google_token" client_id = "8888" client_secret = "9999" [storage google_contacts] type = "google_contacts" token_file = "~/.config/vdirsyncer/google_token" client_id = "8888" client_secret = "9999" [pair calendar] a = "google_calendar" b = "local_calendar" collections = ["from a", "from b"] metadata = ["color"] [pair contacts] a = "google_contacts" b = "local_contacts" collections = ["from a", "from b"] metadata = ["displayname"]
debug
Discovering collections for pair contacts debug: ==================== debug: PROPFIND https://www.googleapis.com/.well-known/carddav debug: {'User-Agent': '888888', 'Content-Type': 'application/xml; charset=UTF-8', 'Depth': '1'} debug: b'\n <propfind xmlns="DAV:">\n <prop>\n <resourcetype />\n </prop>\n </propfind>\n ' debug: Sending request... debug: 403 debug: <CIMultiDictProxy('WWW-Authenticate': 'Bearer realm="https://accounts.google.com/", error="insufficient_scope", scope="https://www.googleapis.com/auth/carddav"', 'Vary': 'Origin', 'Vary': 'X-Origin', 'Vary': 'Referer', 'Content-Type': 'application/json; charset=UTF-8', 'Content-Encoding': 'gzip', 'Date': 'Wed, 10 Jan 2024 11:10:41 GMT', 'Server': 'ESF', 'Cache-Control': 'private', 'X-XSS-Protection': '0', 'X-Frame-Options': 'SAMEORIGIN', 'X-Content-Type-Options': 'nosniff', 'Alt-Svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', 'Transfer-Encoding': 'chunked')> debug: <StreamReader 483 bytes eof> debug: Given URL is not a homeset URL debug: ==================== debug: PROPFIND https://www.googleapis.com/.well-known/carddav debug: {'User-Agent': '888888', 'Content-Type': 'application/xml; charset=UTF-8', 'Depth': '0'} debug: b'\n <propfind xmlns="DAV:">\n <prop>\n <current-user-principal />\n </prop>\n </propfind>\n ' debug: Sending request... debug: 403 debug: <CIMultiDictProxy('WWW-Authenticate': 'Bearer realm="https://accounts.google.com/", error="insufficient_scope", scope="https://www.googleapis.com/auth/carddav"', 'Vary': 'Origin', 'Vary': 'X-Origin', 'Vary': 'Referer', 'Content-Type': 'application/json; charset=UTF-8', 'Content-Encoding': 'gzip', 'Date': 'Wed, 10 Jan 2024 11:10:41 GMT', 'Server': 'ESF', 'Cache-Control': 'private', 'X-XSS-Protection': '0', 'X-Frame-Options': 'SAMEORIGIN', 'X-Content-Type-Options': 'nosniff', 'Alt-Svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', 'Transfer-Encoding': 'chunked')> debug: <StreamReader 483 bytes eof> debug: Trying out well-known URI debug: ==================== debug: PROPFIND https://www.googleapis.com/.well-known/carddav debug: {'User-Agent': '88888', 'Content-Type': 'application/xml; charset=UTF-8', 'Depth': '0'} debug: b'\n <propfind xmlns="DAV:">\n <prop>\n <current-user-principal />\n </prop>\n </propfind>\n ' debug: Sending request... debug: 403 debug: <CIMultiDictProxy('WWW-Authenticate': 'Bearer realm="https://accounts.google.com/", error="insufficient_scope", scope="https://www.googleapis.com/auth/carddav"', 'Vary': 'Origin', 'Vary': 'X-Origin', 'Vary': 'Referer', 'Content-Type': 'application/json; charset=UTF-8', 'Content-Encoding': 'gzip', 'Date': 'Wed, 10 Jan 2024 11:10:41 GMT', 'Server': 'ESF', 'Cache-Control': 'private', 'X-XSS-Protection': '0', 'X-Frame-Options': 'SAMEORIGIN', 'X-Content-Type-Options': 'nosniff', 'Alt-Svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', 'Transfer-Encoding': 'chunked')> debug: <StreamReader 483 bytes eof> debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/discover.py", line 263, in _print_collections debug: discovered = await get_discovered() debug: ^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/discover.py", line 176, in get_self debug: self._discovered = await self._discover() debug: ^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/discover.py", line 185, in _discover debug: return handle_storage_init_error(self._cls, self._config) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/discover.py", line 181, in _discover debug: discovered = await aiostream.stream.list(self._cls.discover(**self._config)) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/aiostream/core.py", line 32, in wait_stream debug: async for item in streamer: debug: File "/usr/lib/python3/dist-packages/aiostream/stream/aggregate.py", line 71, in list debug: async for item in streamer: debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 487, in discover debug: async for collection in d.discover(): debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 274, in discover debug: for c in await self.find_collections(): debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 235, in find_collections debug: self._find_collections_impl(await self.find_home()) debug: ^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 209, in find_home debug: url = await self.find_principal() debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 174, in find_principal debug: return await self._find_principal_impl(self._well_known_uri) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 187, in _find_principal_impl debug: response = await self.session.request( debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/google.py", line 68, in request debug: return await super().request(method, path, **kwargs) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 416, in request debug: return await http.request(method, url, session=session, **more) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/http.py", line 153, in request debug: response.raise_for_status() debug: File "/usr/lib/python3/dist-packages/aiohttp/client_reqrep.py", line 1005, in raise_for_status debug: raise ClientResponseError( warning: Failed to discover collections for google_contacts, use `-vdebug` to see the full traceback. local_contacts: debug: ==================== debug: PROPFIND https://www.googleapis.com/.well-known/carddav debug: {'User-Agent': '8888888', 'Content-Type': 'application/xml; charset=UTF-8', 'Depth': '1'} debug: b'\n <propfind xmlns="DAV:">\n <prop>\n <resourcetype />\n </prop>\n </propfind>\n ' debug: Sending request... debug: 403 debug: <CIMultiDictProxy('WWW-Authenticate': 'Bearer realm="https://accounts.google.com/", error="insufficient_scope", scope="https://www.googleapis.com/auth/carddav"', 'Vary': 'Origin', 'Vary': 'X-Origin', 'Vary': 'Referer', 'Content-Type': 'application/json; charset=UTF-8', 'Content-Encoding': 'gzip', 'Date': 'Wed, 10 Jan 2024 11:10:41 GMT', 'Server': 'ESF', 'Cache-Control': 'private', 'X-XSS-Protection': '0', 'X-Frame-Options': 'SAMEORIGIN', 'X-Content-Type-Options': 'nosniff', 'Alt-Svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', 'Transfer-Encoding': 'chunked')> debug: <StreamReader 483 bytes eof> debug: Given URL is not a homeset URL debug: ==================== debug: PROPFIND https://www.googleapis.com/.well-known/carddav debug: {'User-Agent': '8888', 'Content-Type': 'application/xml; charset=UTF-8', 'Depth': '0'} debug: b'\n <propfind xmlns="DAV:">\n <prop>\n <current-user-principal />\n </prop>\n </propfind>\n ' debug: Sending request... debug: 403 debug: <CIMultiDictProxy('WWW-Authenticate': 'Bearer realm="https://accounts.google.com/", error="insufficient_scope", scope="https://www.googleapis.com/auth/carddav"', 'Vary': 'Origin', 'Vary': 'X-Origin', 'Vary': 'Referer', 'Content-Type': 'application/json; charset=UTF-8', 'Content-Encoding': 'gzip', 'Date': 'Wed, 10 Jan 2024 11:10:42 GMT', 'Server': 'ESF', 'Cache-Control': 'private', 'X-XSS-Protection': '0', 'X-Frame-Options': 'SAMEORIGIN', 'X-Content-Type-Options': 'nosniff', 'Alt-Svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', 'Transfer-Encoding': 'chunked')> debug: <StreamReader 483 bytes> debug: Trying out well-known URI debug: ==================== debug: PROPFIND https://www.googleapis.com/.well-known/carddav debug: {'User-Agent': '88888', 'Content-Type': 'application/xml; charset=UTF-8', 'Depth': '0'} debug: b'\n <propfind xmlns="DAV:">\n <prop>\n <current-user-principal />\n </prop>\n </propfind>\n ' debug: Sending request... debug: 403 debug: <CIMultiDictProxy('WWW-Authenticate': 'Bearer realm="https://accounts.google.com/", error="insufficient_scope", scope="https://www.googleapis.com/auth/carddav"', 'Vary': 'Origin', 'Vary': 'X-Origin', 'Vary': 'Referer', 'Content-Type': 'application/json; charset=UTF-8', 'Content-Encoding': 'gzip', 'Date': 'Wed, 10 Jan 2024 11:10:42 GMT', 'Server': 'ESF', 'Cache-Control': 'private', 'X-XSS-Protection': '0', 'X-Frame-Options': 'SAMEORIGIN', 'X-Content-Type-Options': 'nosniff', 'Alt-Svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', 'Transfer-Encoding': 'chunked')> debug: <StreamReader 483 bytes eof> error: Unknown error occurred: 403, message='Forbidden', url=URL('https://www.googleapis.com/.well-known/carddav') error: Use `-vdebug` to see the full traceback. debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/__init__.py", line 32, in inner debug: f(*a, **kw) debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/__init__.py", line 222, in discover debug: asyncio.run(main()) debug: File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run debug: return runner.run(main) debug: ^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run debug: return self._loop.run_until_complete(task) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete debug: return future.result() debug: ^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/__init__.py", line 214, in main debug: await discover_collections( debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/tasks.py", line 92, in discover_collections debug: rv = await collections_for_pair(pair=pair, **kwargs) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/discover.py", line 97, in collections_for_pair debug: rv = await aiostream.stream.list( debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/aiostream/core.py", line 32, in wait_stream debug: async for item in streamer: debug: File "/usr/lib/python3/dist-packages/aiostream/stream/aggregate.py", line 71, in list debug: async for item in streamer: debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/discover.py", line 210, in expand_collections debug: collections = await get_a_discovered() debug: ^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/discover.py", line 176, in get_self debug: self._discovered = await self._discover() debug: ^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/discover.py", line 185, in _discover debug: return handle_storage_init_error(self._cls, self._config) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/cli/discover.py", line 181, in _discover debug: discovered = await aiostream.stream.list(self._cls.discover(**self._config)) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/aiostream/core.py", line 32, in wait_stream debug: async for item in streamer: debug: File "/usr/lib/python3/dist-packages/aiostream/stream/aggregate.py", line 71, in list debug: async for item in streamer: debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 487, in discover debug: async for collection in d.discover(): debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 274, in discover debug: for c in await self.find_collections(): debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 235, in find_collections debug: self._find_collections_impl(await self.find_home()) debug: ^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 209, in find_home debug: url = await self.find_principal() debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 174, in find_principal debug: return await self._find_principal_impl(self._well_known_uri) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 187, in _find_principal_impl debug: response = await self.session.request( debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/google.py", line 68, in request debug: return await super().request(method, path, **kwargs) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/storage/dav.py", line 416, in request debug: return await http.request(method, url, session=session, **more) debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ debug: File "/usr/lib/python3/dist-packages/vdirsyncer/http.py", line 153, in request debug: response.raise_for_status() debug: File "/usr/lib/python3/dist-packages/aiohttp/client_reqrep.py", line 1005, in raise_for_status debug: raise ClientResponseError(
I only have issue with google contacts carddav, but google calendar caldav with same token works fine.
https://stackoverflow.com/questions/21487706/google-carddav-api-403-error
Saying wrong scope.
You need two different tokens for carddav and caldav and different token paths.
Before you submit bug reports: https://vdirsyncer.pimutils.org/en/stable/contributing.html
Things to include in your bugreport:
debug
I only have issue with google contacts carddav, but google calendar caldav with same token works fine.
https://stackoverflow.com/questions/21487706/google-carddav-api-403-error
Saying wrong scope.