Update Opportunity via xml-rpc with invalid ContactID

Hey!

When I send the following request

https://api.infusionsoft.com/crm/xmlrpc/v1?access_token=my_acces_token
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
  <methodName>DataService.update</methodName>
  <params>
    <param>
      <value>
        <string>my_acces_token</string>
      </value>
    </param>
    <param>
      <value>
        <string>Lead</string>
      </value>
    </param>
    <param>
      <value>
        <string>2</string>
      </value>
    </param>
    <param>
      <value>
        <struct>
          <member>
            <name>OpportunityTitle</name>
            <value>
              <string>test opp update</string>
            </value>
          </member>
          <member>
            <name>OpportunityNotes</name>
            <value>
              <string>Opportunity Notes update</string>
            </value>
          </member>
          <member>
            <name>ContactID</name>
            <value>
              <string>252</string>
            </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>

I’ve got the following response:

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
  <fault>
    <value>
      <struct>
        <member>
          <name>faultCode</name>
          <value>
            <i4>4</i4>
          </value>
        </member>
        <member>
          <name>faultString</name>
          <value>[DatabaseError]Error updating: Couldn't find the record with primary key 0 in Contact</value>
        </member>
      </struct>
    </value>
  </fault>
</methodResponse>

After that, when I send request for getting this opportunity, I saw, that fields OpportunityTitle and OpportunityNotes were updated.
Here is a little misunderstanding, because if my request isn’t valid, Infusionsoft shouldn’t update any fields.

You’ll have to contact support for this one. If the action is succeeding but returning an error then obviously they’re going to have to escalate to the developers to look at it.