max-arnold / mailchimp-backup

A script to backup Mailchimp lists
BSD 3-Clause "New" or "Revised" License
3 stars 0 forks source link

Error after about Jul 26 getting all members ? #3

Open n9yty opened 1 month ago

n9yty commented 1 month ago

It seems this line in the backup script is now triggering an error:

lst = _client(key).lists.members.all(list_id, get_all=True)

Error:

Traceback (most recent call last):
  File "/home/homedir/mailchimp-backup/mailchimp-backup.py", line 167, in <module>
    lists = list(export_all_lists(key, options))
  File "/home/homedir/mailchimp-backup/mailchimp-backup.py", line 117, in export_all_lists
    yield (lst['id'], export_list(key, lst['id']))
  File "/home/homedir/mailchimp-backup/mailchimp-backup.py", line 107, in export_list
    lst = _client(key).lists.members.all(list_id, get_all=True)
  File "/home/homedir/.virtualenvs/mailchimp-backup/lib/python3.9/site-packages/mailchimp3/entities/listmembers.py", line 94, in all
    return self._iterate(url=self._build_path(list_id, 'members'), **queryparams)
  File "/home/homedir/.virtualenvs/mailchimp-backup/lib/python3.9/site-packages/mailchimp3/baseapi.py", line 60, in _iterate
    result = self._mc_client._get(url=url, offset=0, count=1000, **queryparams)
  File "/home/homedir/.virtualenvs/mailchimp-backup/lib/python3.9/site-packages/mailchimp3/mailchimpclient.py", line 30, in wrapper
    return fn(self, *args, **kwargs)
  File "/home/homedir/.virtualenvs/mailchimp-backup/lib/python3.9/site-packages/mailchimp3/mailchimpclient.py", line 163, in _get
    raise MailChimpError(r.json())
  File "/home/homedir/.virtualenvs/mailchimp-backup/lib/python3.9/site-packages/requests/models.py", line 897, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib64/python3.9/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/lib64/python3.9/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib64/python3.9/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Has MailChimp changed something, or is it a local problem?

n9yty commented 1 month ago

Sorry, this seems to be an issue with the mailchimp3 library. I tried updating to the latest version which didn't change anything. I modified the mailchimp3 library to do some debugging and found that I was getting a 504 error. I then went in to mailchimp-backup/lib/python3.9/site-packages/mailchimp3/baseapi.py and changed the "chunking" from 1000 to 500 and it is now able to complete.

max-arnold commented 1 month ago

I can't test this myself because I no longer have a Mailchimp account, but could you try upgrading mailchimp3 to the latest version (3.0.21)? It looks like it already uses 500 by default.

If your test will succeed, let me know and I'll upgrade the dependency so it will work out of the box.