I want to subscribe an user to a Mailchimp list as soon as their account is activated
Try below code ... You are missing 5th argument in mailchimp_subscribe_user

function mymodule_user_presave(&amp;$edit, $account, $category) {
  if ($account-&gt;uid // user is not new
      &amp;&amp; $account-&gt;status === "0" &amp;&amp; $edit['status']==1) { // user is being activated

        $mcapi = mailchimp_get_api_object();
        $list_id = 1;
        $list = mailchimp_get_list($list_id);
        $mergevars = mailchimp_lists_load_user_mergevars($account, $list);

        watchdog('mymodule_log', 'account-&gt;uid '.$account-&gt;uid);
        watchdog('mymodule_log', 'list-&gt;id '.$list_id);

        mailchimp_subscribe_user($list, $account-&gt;mail, $mergevars, TRUE, $mcapi);

        watchdog('mymodule_log', 'got this far!');
  }
}