I think this may be related to v4.2.0 which included
Feature: Add support for specifying document IDs during insertion
If you insert a document that was retrieved from TinyDB, TinyDB will use its ID to update the document. This also allows to manually set a document ID when creating a new document.
You should be able to work around that by converting the document from
Document (which TinyDB returns) to a
x = table.get(doc_id=sender_doc_id)
receiver_doc_id = table.insert(dict(x))
Does that work for you?