I've been storing gclids for legitimate traffic in my database when customers come to my website. Then, I use the v11 REST API for Google Offline Conversions to post the whole sales cycle from download of our product, purchase, and upsell.
Occasionally when sending traffic, I keep getting EVENT_NOT_FOUND and sometimes CLICK_CONVERSION_ALREADY_EXISTS. However, these do not make sense to me because when I search my table for these entries, I only see one instance by event date, conversionAction (like download, purchase, and upsell), and gclid. These seem to occur around 30% of the time. Now, granted, I remove data out of my database tables that are older than 90 days. However, I wouldn't think Google would track a gclid longer than 90 days, anyway.
Really, the only events I should be getting back from this API should be:
SUCCESS - the conversion was posted and no retries should be done
EXPIRED_EVENT - the data may be older than 90 days and so this event is effectively dead and no retries should be done
TOO_RECENT_EVENT - schedule it for retry in the next 30 minutes
LATER_THAN_MAXIMUM_DATE - schedule it for retry in the next 30 minutes because 6 hours haven't passed yet on it
Indeed, the bulk of my responses have been the above events and my code is handling these properly. It's just that the EVENT_NOT_FOUND and CLICK_CONVERSION_ALREADY_EXISTS are baffling and I cannot determine why they are occurring. And in some cases (but not all) where CLICK_CONVERSION_ALREADY_EXISTS has been filed, I look in my last_status column in my database and don't appear to have a value there (NULL) because this was the first time my code posted this.
Is this a bug with Google Ads?