I've searched the forums and found similar problems -- and solutions -- but not quite like this.
I'm using CEv6.1

We're using the Contacts module as an Order module to manage Website sales.
Lately, when I send an order from the Website to the Contacts (Orders) module via SOAP set_entry method, the email field (email1) does NOT get set!

It's very intermittent
???
I thought I might update the email_addresses table directly, but without all the email_addr_bean_rel values being created first, that doesn't seem likely.

I'm quite sure I'm doing everything correctly.
default primary_email is 'email1', correct?
Here is my SOAP call:

// Connect to SOAP Server
$client = new SoapClient(NULL, $options);

// Login to SugarCRM
$response = $client->login($user_auth,'test');
$session_id = $response->id;
$user_id = $client->get_user_id($session_id);

// Send the data
$response = $client->set_entry($session_id, 'Contacts',
array(
array('name' => 'ordernumber_c','value' => $invoiceNumber),
array('name' => 'product_c','value' => 'xxxxx'),
array('name' => 'brand_c','value' => 'xxxxl'),
array('name' => 'price_c','value' => $price),
array('name' => 'shippingcost_c','value' => $SHIPPING),
array('name' => 'total_c','value' => $AMOUNT),
array('name' => 'paymentmethod_c','value' =>'CC'),
array('name' => 'lead_source','value' => 'xxx.com'),
array('name' => 'specialinstructions_c','value' => $notes),
array('name' => 'first_name','value' => $firstName),
array('name' => 'last_name','value' => $lastName),
array('name' => 'company_c','value' => $company),
array('name' => 'primary_address_street','value' => $address1.' '.$address2),
array('name' => 'primary_address_city','value' => $city),
array('name' => 'primary_address_state','value' => $state),
array('name' => 'primary_address_postalcode','value' => $zip),
array('name' => 'billing_address_street_c','value' => $billing_address1),
array('name' => 'billing_address_city_c','value' => $billing_city),
array('name' => 'billing_address_state_c','value' => $billing_state),
array('name' => 'billing_address_postal_code_c','value' => $billing_zip),
array('name' => 'primary_address_country','value' => $country),
array('name' => 'phone_work','value' => $phone),
array('name' => 'phone_home','value' => $phone2),
array('name' => 'email1','value' => $contactEmail),
array('name' => 'paid_c','value' => 'PAID'),
array('name' => 'date_of_purchase_c','value' => $date_of_purchase),
array('name' => 'extended_warranty_c','value' => '12'),
array('name' => 'modelnumber_c', 'value' => 'ME-710'),
array('name' => 'gst_c', 'value' => $gst),
array('name' => 'sale_source_c', 'value' => $sale_source),
array('name' => 'assigned_user_id','value' => $user_id)
));

Most of the variables go into `contacts_cstm` and the various `contacts_` tables, including of course, `contacts`

Anyone have any idea what might be causing this intermittent issue?

Do I need an $id before I can create email1 ????