Actually, both options (error_reporting and display_errors) are set as you said. Nevertheless, it kept throwing this notice and interrupting import on about 10% of progress.
So I checked the line 428 on the script Contacts.php. It goes like this:
// Set campaign name if there is a campaign id
if( !empty($this->campaign_id)){
$camp = new Campaign();
$where = "campaigns.id='{$this->campaign_id}'";
$campaign_list = $camp->get_full_list("campaigns.name", $where, true);
$this->campaign_name = $campaign_list[0]->name;
}
The block above starts at line 422 till 429. As commented by devs, it sets campaign_name property only if there is a campaign id. None of my contact has a campaign id, as we don’t use this feature. In the Contacts CVS exported from PHPMyAdmin, some of the lines had this field empty and others NULL.
So I changed importing parameters not to map campaign_id field when importing contacts. Guess wot??? It worked!!!
Finally, I performed 2 tests: importing a dummy CVS, this time mapping campaign_id field. The first test would have campaign_id = NULL and the second campaign_id = ‘’ (empty). I thought maybe the lines with NULL would be the problem. But no. Both were imported correctly.
It’s strange. I will try again in order to find where was the problem. The weirdest thing is: why did it keep showing that notice even after I deactivated it in php.ini? After changing the config option, I rebooted.
If you can reproduce your bug in the live demo, with as short a CSV file as possible, and then open an issue on GtiHub describing it and providing that CSV, the developers can have a look at this.
First, I tried my list with 1200 contacts. I knew the notice appeared near line 1000. It appeared on demo!!! So, I started your advice: bisection. But first I wanted to delete all contacts in order to avoid duplicates (if I used the duplicates find in SuiteCRM maybe the result would be different). There were some demo contacts, I think about 100. I deleted it all. During this process, server threw 504 Gateway Time-out.
Don’t worry, that is probably just the Demo refreshing itself. It happens every hour (I believe) and you should be able to use it again after a few minutes.
The whole thing is reset once in a while to make sure people don’t mess it up too much. You probably just had the bad luck to be using it at that time. Try again in a few minutes…