Sure of course. This is probably too much info but I’m not sure exactly what’s useful or not. I’m starting with the most recent place I see this person object (I0042) being referenced in the logs.
The data was input into Gramps Web by creating objects manually.
The object was working quite well actually it just came up when I was trying to link or unlink—sorry I can’t remember—a media object to the person.
BTW if it’s easiest, I’m fine with deleting the person and recreating.
grampsweb | gramps.gen.errors.HandleError: Handle is None
grampsweb | [2024-01-16 15:48:30 +0000] [15] [ERROR] Error handling request /api/people/?gramps_id=I0042&locale=en&profile=all&backlinks=true&extend=all
grampsweb | Traceback (most recent call last):
grampsweb | File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/sync.py", line 135, in handle
grampsweb | self.handle_request(listener, req, client, addr)
grampsweb | File "/usr/local/lib/python3.11/dist-packages/gunicorn/workers/sync.py", line 178, in handle_request
grampsweb | respiter = self.wsgi(environ, resp.start_response)
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 1478, in __call__
grampsweb | return self.wsgi_app(environ, start_response)
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 1458, in wsgi_app
grampsweb | response = self.handle_exception(e)
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 1455, in wsgi_app
grampsweb | response = self.full_dispatch_request()
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 869, in full_dispatch_request
grampsweb | rv = self.handle_user_exception(e)
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 867, in full_dispatch_request
grampsweb | rv = self.dispatch_request()
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 852, in dispatch_request
grampsweb | return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/gramps_webapi/api/auth.py", line 44, in wrapper
grampsweb | return func(*args, **kwargs)
grampsweb | ^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/flask/views.py", line 109, in view
grampsweb | return current_app.ensure_sync(self.dispatch_request)(**kwargs)
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/flask/views.py", line 190, in dispatch_request
grampsweb | return current_app.ensure_sync(meth)(**kwargs)
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/webargs/core.py", line 649, in wrapper
grampsweb | return func(*args, **kwargs)
grampsweb | ^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/gramps_webapi/api/resources/base.py", line 387, in get
grampsweb | 200, [self.full_object(obj, args, locale=locale)], args, total_items=1
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/gramps_webapi/api/resources/base.py", line 91, in full_object
grampsweb | obj = self.object_extend(obj, args, locale=locale)
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/gramps_webapi/api/resources/people.py", line 56, in object_extend
grampsweb | obj.extended = get_extended_attributes(db_handle, obj, args)
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/gramps_webapi/api/resources/util.py", line 638, in get_extended_attributes
grampsweb | result["media"] = [
grampsweb | ^
grampsweb | File "/usr/local/lib/python3.11/dist-packages/gramps_webapi/api/resources/util.py", line 639, in <listcomp>
grampsweb | db_handle.get_media_from_handle(media_ref.ref)
grampsweb | File "/usr/lib/python3/dist-packages/gramps/gen/db/generic.py", line 1297, in get_media_from_handle
grampsweb | return self._get_from_handle(MEDIA_KEY, Media, handle)
grampsweb | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
grampsweb | File "/usr/lib/python3/dist-packages/gramps/gen/db/generic.py", line 1263, in _get_from_handle
grampsweb | raise HandleError('Handle is None')
grampsweb | gramps.gen.errors.HandleError: Handle is None
grampsweb | ERROR:root:Error parsing list of recent DBs from file /root/.gramps/recent-files-gramps.xml: no element found: line 1, column 0.
grampsweb | This might indicate a damage to your files.
grampsweb | If you're sure there is no problem with other files, delete it, and restart Gramps.
root@grampsweb0222onubuntu2004-s-1vcpu-1gb-amd-sfo3-01:/opt/grampsweb#