Mark Sapiro wrote:
One of the list's regular members has no associated address record. I don't know how this can happen.
That doesn't sound good. When something is unknown, that's never good.
You could find the member with mailman shell, e.g. mailman shell -l list.example.com Welcome to the GNU Mailman shell Use commit() to commit changes. Use abort() to discard changes since the last commit. Exit with ctrl+D does an implicit commit() but exit() does not. The variable 'm' is the list.example.com mailing list
for mbr in m.regular_members.members: ... if mbr.address is None: ... mbr.subscriber ... mbr.user ... mbr.user.addresses ... mbr.user.preferred_address ...
Yupp, this returns two entries (or better: User Objects?)
You might be able to fix this with something like
for mbr in m.regular_members.members: ... if mbr.address is None: ... mbr.address = mbr.user.preferred_address or member.user.addresses[0] ... commit()
This fix didn't worked. It returned a "Index out of bounds" exception. Instead, we have deleted the corresponding entry in the database. It should be possible to find it this way:
select * from member where list_id = 'list.lists.example.com' AND address_id IS NULL;
After deleting the row, the list works again.