I am getting the following error sometimes when subscribing a contact to a list
json.max.length.violation, errorMessage=#/addresses/0/line1: Value exceeds maximum length of 50
What is strange to me is that all I am sending is the first name, last name and email address. In all of the cases that I have seen this, none of those fields have been over 50 characters.
Could somebody please shed some light on this?
I would best be able to assist if I could see the data that you are submitting when this error occurs.
Without seeing that info my first thoughts are that this is an automated system and the addresses array contains a section with blank spaces or a carriage return which could be causing the max 50 characters error.
If you need to submit data that requires privacy you can send an email to email@example.com.
I've replied to you there. The issue seems to be that the contact we are trying to update already has an address over 50 characters. When I pull that contact from your API, I can see that is the case. Then we make our updates and push the contact back, but the validation prevents our update (to a different field).
Posting for posterity and so people finding this thread on Google know what to do. Got this reply from support:
I got a chance to do more digging on this, and it looks like this may be an issue without much of a clean solution for the V2 API. The problem right now is that the API (and the internal service it uses) were both designed when addresses were handled a bit differently and had 3 components with a length of 50 each, for a combined length of 150. However, the current version of the contact management platform uses a single address field (with some support for the legacy format) with a length limit of 255. The effect of this is that a customer could import a contact from a spreadsheet with an address whose length is greater than 50 (the limit for each of the component pieces of the format our API uses), and then the external APi is not able to update that contact directly.
Fortunately, there is a work-around for this issue. Because of the discrepancies between the API and our UI for managing contact data, the system is configured such that omitting the physical address data does not remove that data during a contact update. Including the address data and modifying it allows you to update it, but omitting it does not remove it. Given this, the best work-around available would be to:
A) Remove the addresses property from any contact whose address you are not updating
B) Detect this error message and selectively remove the addresses property of contacts.
If you have any questions or concerns, please let me know!