Skip to content

Member Exists error when using client.lists.members.create_or_update #222

@DataGreed

Description

@DataGreed

When using client.lists.members.create_or_update method I get this error if the user actually exists (the actual email is hidden for privacy concerns):

MailChimpError: {'type': 'http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/', 'title': 'Member Exists', 'status': 400, 'detail': '(SOME_EMAIL_HERE)@domain.com is already a list member. Use PUT to insert or update list members.', 'instance': 'd9d8f23a-87e9-4add-9fb3-204ccb0151d9'}
 ...
  File "mailchimp3/entities/listmembers.py", line 165, in create_or_update
    return self._mc_client._put(url=self._build_path(list_id, 'members', subscriber_hash), data=data)
  File "mailchimp3/mailchimpclient.py", line 30, in wrapper
    return fn(self, *args, **kwargs)
  File "mailchimp3/mailchimpclient.py", line 257, in _put
    _raise_response_error(r)
  File "mailchimp3/mailchimpclient.py", line 44, in _raise_response_error
    raise MailChimpError(error_data)

This is are the arguments aI use to call the method:

data={
    email_address: '(SOME_EMAIL_HERE)@domain.com',  
    merge_fields: {
        EMAIL: '(SOME_EMAIL_HERE)@domain.com', 
        NAME: 'Kate'
    }, 
    status: 'subscribed', 
    status_if_new: 'subscribed'
}

client.lists.members.create_or_update(
    list_id=audience_id,
    subscriber_hash=md5(user.email.lower().encode("utf-8")).hexdigest(),
    data=data)

Library version is 3.0.12 running on Python 3.6

This seems strange as I am using create_or_update method which assumes that the user can already exist and I think that create_or_update actually uses PUT method.

Am I doing something wrong here? How can this be fixed?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions