The error we see is when a subscriber is resubscribing (status="Do Not Mail" to status="Active"). I have not identified a time pattern. I tested the API manually at around 12.00PST today. Using identical code, 4 subscribers who had previously tried to resubscribe went through fine, one required two tries, one required 3 tries. I have also spent a few hours this afternoon (aftyer your reply) working on it, and can find no consistent pattern. Below are example XML dumps. To enable me to better see what is going on, I added the API response into custom field 1 for the dump, not sent to the API!. As you will see, this time it took 2 tries. When the opt-in works, I get "204 No Content" as a response. If it does not work, I see "400 bad request" The testing process I used this afternoon was to manually go onto CC, mark a subscriber as "Do Not Mail", and attempt to resubscribe thoguh the API. First try required two attempts (screen refreshes). Went back onto CC, marked as "Do Not Mail". Resubscribed - worked first time. Repeated. Worked first time. Repeated. Took 3 tries. <sigh> I also used the "get" command to get the subscriber details before and after the API call to see what was going on.....no smoking bullet! Interestingly, after I have successfully resubscribed a contact, I generally search for them in Constant Contact to recheck the status (although through the "get" indicates they are Active). Sometimes they come up in CC as "Active"; sometimes as "Do Not Mail". I just searched for a contact who was noted in the search screen as "Do Not Mail", clicked on the name for more information, where the contact was marked as "Active". Searched again: "Do Not Mail". Generally logging out and logging back in helps....wild thought, I assume your servers are in a cluster, could one node be out of synch somehow? Could this have something to do with the intermittent problem we are seeing? Below is a recent dump of the XML file. To better problemsolve, in the custom field 1 (in the dump not sent to the API) I included the response. id http://api.constantcontact.com/ws/customers/xxxx/contacts/xxxx xmlns http://ws.constantcontact.com/ns/1.0/ Status Do Not Mail EmailAddress xxxx@xxxx.com EmailType HTML Name xxxx FirstName Paul MiddleName LastName xxxx JobTitle CompanyName HomePhone WorkPhone Addr1 Addr2 Addr3 City StateCode StateName CountryCode CountryName PostalCode SubPostalCode Note Member added from xxxx admin CustomField1 response: 400 Bad Request CustomField2 CustomField3 CustomField4 CustomField5 CustomField6 CustomField7 CustomField8 CustomField9 CustomField10 CustomField11 CustomField12 CustomField13 CustomField14 CustomField15 Confirmed true InsertTime 2011-01-05T21:37:35.648Z LastUpdateTime 2012-04-28T01:41:05.589Z OptInSource ACTION_BY_CONTACT ContactLists ContactList id https://api.constantcontact.com/ws/customers/xxxx/lists/xxxx ContactList id https://api.constantcontact.com/ws/customers/xxxx/lists/xxxx id http://api.constantcontact.com/ws/customers/xxxx/contacts/xxxx xmlns http://ws.constantcontact.com/ns/1.0/ Status Do Not Mail EmailAddress xxxx@xxxx.com EmailType HTML Name xxxx FirstName Paul MiddleName LastName xxxx JobTitle CompanyName HomePhone WorkPhone Addr1 Addr2 Addr3 City StateCode StateName CountryCode CountryName PostalCode SubPostalCode Note Member added from xxxx admin CustomField1 response: 204 No Content CustomField2 CustomField3 CustomField4 CustomField5 CustomField6 CustomField7 CustomField8 CustomField9 CustomField10 CustomField11 CustomField12 CustomField13 CustomField14 CustomField15 Confirmed true InsertTime 2011-01-05T21:37:35.648Z LastUpdateTime 2012-04-28T01:41:05.589Z OptInSource ACTION_BY_CONTACT ContactLists ContactList id https://api.constantcontact.com/ws/customers/xxxx/lists/xxxx ContactList id https://api.constantcontact.com/ws/customers/xxxx/lists/xxxx As I said, I can code things on my side to capture any 400 errors and simply resubmit the same information mutliple times, but it seems like a bit of a kluge.
... View more