Crash on Undo Follow #113

Open
opened 2026-04-23 15:15:44 +00:00 by evanp · 0 comments

This shape of Undo Follow, to unsubscribe a litepub relay client, works (the follow relationship is broken), but the background handler crashes.

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://…/user/X/undo/…",
  "type": "Undo",
  "actor": "https://…/user/X",
  "object": {
    "id": "https://…/user/X/follow/…",
    "type": "Follow",
    "object": "https://relay.example/actor"
  },
  "published": "…",
  "to": "https://relay.example/actor"
}

The trace:

File ".../relay/workers.py", line 73, in handle_queue
    item = self.queue.get(block=True, timeout=0.1)
File ".../multiprocessing/queues.py", line 122, in get
    return _ForkingPickler.loads(res)
File ".../aputils/message.py", line 401, in __setitem__
    value = CONVERTERS[vtype][0](value)
File ".../json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

There seems to be a pickling problem -- maybe the embedded object is what's causing the problem?

This shape of Undo Follow, to unsubscribe a litepub relay client, works (the follow relationship is broken), but the background handler crashes. ``` { "@context": "https://www.w3.org/ns/activitystreams", "id": "https://…/user/X/undo/…", "type": "Undo", "actor": "https://…/user/X", "object": { "id": "https://…/user/X/follow/…", "type": "Follow", "object": "https://relay.example/actor" }, "published": "…", "to": "https://relay.example/actor" } ``` The trace: ``` File ".../relay/workers.py", line 73, in handle_queue item = self.queue.get(block=True, timeout=0.1) File ".../multiprocessing/queues.py", line 122, in get return _ForkingPickler.loads(res) File ".../aputils/message.py", line 401, in __setitem__ value = CONVERTERS[vtype][0](value) File ".../json/__init__.py", line 346, in loads return _default_decoder.decode(s) json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) ``` There seems to be a pickling problem -- maybe the embedded object is what's causing the problem?
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pleroma/relay#113
No description provided.