Legacy API misbehavior?

@OmarAlmonte
I’m noticing an unexpected “Contact not found” exception after successfully creating and manipulating contacts via the Legacy API. Here is the first log extract. Notice that contact creation, email optin, filebox upload all occur as expected. Then Achieve API goal fails. Notice the timestamps.

2026-08-01 14:00:10.987957 - DEBUG --> systasisgfifscrm\GravityFormsInfusionsoftIntegrator::optin(): test@systasis.co flagged marketable. 
2026-08-01 14:00:12.219744 - DEBUG --> systasisgfifscrm\GravityFormsInfusionsoftIntegrator::upload_attachments(): File "ngc-3461.png" has been uploaded to contact #50846. 
2026-08-01 14:00:13.015150 - ERROR --> systasisgfifscrm\GravityFormsInfusionsoftIntegrator::achieve_goal(): Could not achieve goal "REGRESSION"
DatabaseObjectNotFoundException: Couldn't find the record with primary key 50846 in Contact 
2026-08-01 14:00:13.636074 - ERROR --> systasisgfifscrm\GravityFormsInfusionsoftIntegrator::achieve_goal(): Could not achieve goal "REGRESSION"
DatabaseObjectNotFoundException: Couldn't find the record with primary key 50846 in Contact 
2026-08-01 14:00:13.642193 - DEBUG --> GFFeedAddOn::fulfill_entry(): Entry #75 marked as fulfilled. 

Here is the second test a minute later. Notice the timestamps. Notice processing occurs as expected

2026-08-01 14:01:22.619453 - DEBUG --> systasisgfifscrm\GravityFormsInfusionsoftIntegrator::optin(): test67@systasis.co flagged marketable. 
2026-08-01 14:01:23.598274 - DEBUG --> systasisgfifscrm\GravityFormsInfusionsoftIntegrator::upload_attachments(): File "Coversheet.jpeg" has been uploaded to contact #50848. 
2026-08-01 14:01:24.314903 - DEBUG --> systasisgfifscrm\GravityFormsInfusionsoftIntegrator::achieve_goal(): API Goal REGRESSION set for contact id:50848 
2026-08-01 14:01:24.713387 - DEBUG --> systasisgfifscrm\GravityFormsInfusionsoftIntegrator::achieve_goal(): API Goal REGRESSION set for contact id:50848 
2026-08-01 14:01:24.714694 - DEBUG --> GFFeedAddOn::fulfill_entry(): Entry #76 marked as fulfilled. 

This sequence of calls seems to fail more often than it succeeds. I’m not sure of the ratio of success to failure. It’s pretty clear that contacts are dropped after creation. Looking at the app, a sandbox, sd108, there is a gap in the assigned contact ID, and there is a missing contact at the logged ID.

Hi @Jeffrey_Chimene, thanks for sharing the logs. Since this is occurring through the Legacy XML-RPC API, it’s important to note that the XML-RPC API is deprecated. If you’re experiencing intermittent issues like this, we recommend migrating to the REST v2 API, which is the supported API going forward and receives ongoing improvements and support.

If you migrate to REST v2 and encounter any issues there, we’d be happy to help investigate.

@Jeffrey_Chimene, did you not get the memo? :joy:

@OmarAlmonte

Wow.

Just Wow.

What a callous, patronizing response.

I’m done reporting bugs to this crew.

Hi Jeffrey, I’m sorry my response came across that way. That was not my intention.

I appreciate the time and detail you put into sharing the logs and the investigation you’ve already done. I understand you were reporting a specific issue with unexpected contact creation behavior.

My intent was not to dismiss the bug report, but to provide context around the API being used and suggest the supported path forward. I appreciate you bringing this behavior to our attention and taking the time to provide the details.

@OmarAlmonte
I appreciate the apology. The Legacy API is indeed an albatross. Ovwr the past few days, I’ve had to create a HOTFIX for a WordPress plugin using the Legacy API. This plugin relies on a critical WordPress plugin that had an unexpected major version increment. I have no choice but to support the Legacy API: the REST API is not yet ready for prime time. Keap cannot expect me to release monkey-patched software into Production. I don’t work that way, neither should Keap.

I’m trying to factor in a transition to the REST API for this plugin, in addition to further updates to WordPress before the 31-DEC sunset. For that reason, the Legacy API is still an important tool for at least 100+ users (according to WordPress metrics). To see Keap abandon its commitment to that API before its retirement date is testimony to the transitory nature of this entire API suite.