After pressing next I get an error message. Log reads:
877483: WARNING: grampswebsync.py: line 83: Keyring is not installed, cannot retrieve password. 884931: ERROR: grampswebsync.py: line 483: Fehler 500 beim Herstellen der Verbindung zum Server.
Happy for any tips or a possibly identifing this as a bug. Can give more details/provide translation of german bits if needed!
Thanks so much in advance!
Here’s all my version Info:
gramps_web_sync
Version: 1.3.8
Gramps Web (using grampshub.com)
Gramps 6.0.7
Gramps Web API 3.9.0
Gramps Web Frontend 26.3.1
Gramps QL 0.4.0
Sifts 1.3.0
locale: en
multi-tree: true
task queue: true
OCR: true
chat: true
and here comes the debug report for grampswebsync (username redacted)
7062: DEBUG: grampswebsync.py: line 103: Initializing Gramps Web Sync addon. 8380: DEBUG: grampswebsync.py: line 79: Retrieving password for user XX 8381: WARNING: grampswebsync.py: line 83: Keyring is not installed, cannot retrieve password. 9384: DEBUG: grampswebsync.py: line 222: Moving to next page from page 0. 9385: DEBUG: grampswebsync.py: line 222: Moving to next page from page 1. 12091: DEBUG: grampswebsync.py: line 222: Moving to next page from page 1. 13432: DEBUG: grampswebsync.py: line 222: Moving to next page from page 1. 13432: DEBUG: grampswebsync.py: line 222: Moving to next page from page 2. 13434: DEBUG: webapihandler.py: line 161: Fetching an access token from the server 13563: DEBUG: webapihandler.py: line 161: Fetching an access token from the server 13799: DEBUG: grampswebsync.py: line 222: Moving to next page from page 2. 13801: INFO: grampswebsync.py: line 502: Downloading Gramps XML file. 14840: ERROR: grampswebsync.py: line 483: Fehler 500 beim Herstellen der Verbindung zum Server.
Gramps Web (Grampshub)
Gramps 6.0.8
Gramps Web API 3.11.1
Gramps Web Frontend 26.4.1
Gramps QL 0.4.0
Sifts 1.3.0
locale: en
multi-tree: true
task queue: true
OCR: true
chat: true
Debug Log
2026-04-17 12:56:40.969: DEBUG: grampswebsync.py: line 103: Initializing Gramps Web Sync addon. 2026-04-17 12:56:42.089: DEBUG: grampswebsync.py: line 79: Retrieving password for user XX 2026-04-17 12:56:42.090: WARNING: grampswebsync.py: line 83: Keyring is not installed, cannot retrieve password. 2026-04-17 12:56:43.361: DEBUG: grampswebsync.py: line 222: Moving to next page from page 0. 2026-04-17 12:56:43.362: DEBUG: grampswebsync.py: line 222: Moving to next page from page 1. 2026-04-17 12:56:46.682: DEBUG: grampswebsync.py: line 222: Moving to next page from page 1. 2026-04-17 12:56:47.484: DEBUG: grampswebsync.py: line 222: Moving to next page from page 1. 2026-04-17 12:56:47.484: DEBUG: grampswebsync.py: line 222: Moving to next page from page 2. 2026-04-17 12:56:47.486: DEBUG: webapihandler.py: line 161: Fetching an access token from the server 2026-04-17 12:56:47.621: DEBUG: webapihandler.py: line 161: Fetching an access token from the server 2026-04-17 12:56:47.866: DEBUG: grampswebsync.py: line 222: Moving to next page from page 2. 2026-04-17 12:56:47.868: INFO: grampswebsync.py: line 502: Downloading Gramps XML file. 2026-04-17 12:56:48.976: WARNING: grampswebsync.py: line 483: Fehler 500 beim Herstellen der Verbindung zum Server. 2026-04-17 12:56:48.976: DEBUG: grampswebsync.py: line 222: Moving to next page from page 2. 2026-04-17 12:56:48.977: DEBUG: grampswebsync.py: line 224: Skipping to last page due to error. 2026-04-17 12:56:50.818: DEBUG: grampswebsync.py: line 214: Closing Gramps Web Sync addon.
Could maybe be related to another issue I’m facing?
might be a far stretch, as I have no real software/coding knowledge.
reporting back from my attempts to overcome my current data lock-in
Even after some Gramps Web and API Updates, the same issues still occur as detailled in this thread as well as the one with exporting I wrote about here (also see last post).
→ So what are my options right now?
Is there any options to “manually” search for corrupted data?
Or might it be best to manually add Gramps Web Changes to my Gramps Desktop and start over?
(also haven’t tried exporting my data via other export options apart from Gramps XML - but as far as I know I’ll lose data when using them)
the problems persist … considering my options now:
Most export options are sucessful, but 2 produce errors: Gramps XML (can only concatenate str (not "NoneType") to str) and GEDCOM (HandleError()) are not working
Most likely i will have to make a plan on how to systematically see which changes were made compared to my desktop version and manually add them there. (Or even start completely from scratch to avoid carrying over corrupted data??)
@DavidMStraub Any clue you’ve got for this case, per chance?
If not, so be it! After all I should have synced much more frequently after doing changes on Gramps Web. But I didn’t know at that time..
Oh, I see the error now. It’s not in celery as it happens during export, so I was looking in the wrong place.
[2026-07-04 20:11:30 +0000] [16654] [ERROR] Error handling request GET /api/exporters/gramps/file
Traceback (most recent call last):
File "/venv/lib/python3.13/site-packages/gunicorn/workers/sync.py", line 141, in handle
self.handle_request(listener, req, client, addr)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/gunicorn/workers/sync.py", line 184, in handle_request
respiter = self.wsgi(environ, resp.start_response)
File "/venv/lib/python3.13/site-packages/flask/app.py", line 1536, in __call__
return self.wsgi_app(environ, start_response)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/flask/app.py", line 1514, in wsgi_app
response = self.handle_exception(e)
File "/venv/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/venv/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/venv/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/venv/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/gramps_webapi/api/auth.py", line 44, in wrapper
return func(*args, **kwargs)
File "/venv/lib/python3.13/site-packages/flask/views.py", line 110, in view
return current_app.ensure_sync(self.dispatch_request)(**kwargs) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/gramps_webapi/api/resources/__init__.py", line 51, in dispatch_request
return current_app.ensure_sync(meth)(*args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/webargs/core.py", line 652, in wrapper
return func(*args, **kwargs)
File "/venv/lib/python3.13/site-packages/flask_smorest/arguments.py", line 85, in wrapper
return current_app.ensure_sync(func)(*f_args, **f_kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/gramps_webapi/api/resources/exporters.py", line 242, in get
file_name, file_type = run_export(db_handle, extension, options)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/gramps_webapi/api/export.py", line 288, in run_export
result = export_function(db_handle, file_path, user, options)
File "/venv/lib/python3.13/site-packages/gramps/plugins/export/exportxml.py", line 1467, in export_data
return g.write(filename)
~~~~~~~^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/gramps/plugins/export/exportxml.py", line 1490, in write
ret = GrampsXmlWriter.write(self, filename)
File "/venv/lib/python3.13/site-packages/gramps/plugins/export/exportxml.py", line 200, in write
self.write_xml_data()
~~~~~~~~~~~~~~~~~~~^^
File "/venv/lib/python3.13/site-packages/gramps/plugins/export/exportxml.py", line 321, in write_xml_data
self.write_person(person, 2)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/gramps/plugins/export/exportxml.py", line 579, in write_person
self.write_media_list(person.get_media_list(), index + 1)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/gramps/plugins/export/exportxml.py", line 1230, in write_media_list
self.g.write('%s<objref hlink="%s"' % (sp, "_" + mobj_id))
~~~~^~~~~~~~~
TypeError: can only concatenate str (not "NoneType") to str
So you’re hitting this exact issue:
Can you please double-check your sync addon version?