then any partial information I added will be sent via Grommet.
This is not entirely correct. You're very close on how to reproduce the rocky error. However, Grommet is not including partial data for the assistant object.
I took your clues and ran a test against staging and noticed that we pass back the assistant declaration under the "additional_info" array. Rocky is checking that (as there is nothing else for Rocky to check other than the absence of the assistant object). So, if you were to fill in everything except that declaration checkbox and then uncheck the "received assistance" checkbox, the error would not occur.
Here is an example of the JSON that is causing the issue.
{
"rocky_request": {
"lang": "en",
"phone_type": "Mobile",
"partner_id": "1",
"opt_in_email": false,
"opt_in_sms": false,
"opt_in_volunteer": false,
"partner_opt_in_email": true,
"partner_opt_in_sms": true,
"partner_opt_in_volunteer": false,
"finish_with_state": true,
"created_via_api": true,
"source_tracking_id": "Asdf",
"partner_tracking_id": "32333",
"geo_location": {
"lat": 0,
"long": 0
},
"open_tracking_id": "Asdf",
"voter_records_request": {
"type": "registration",
"generated_date": "2016-10-03T15:37Z",
"voter_registration": {
"date_of_birth": "1998-01-01",
"registration_address": {
"numbered_thoroughfare_address": {
"complete_street_name": "Sadf",
"complete_sub_address": {
"sub_address_type": "APT",
"sub_address": ""
},
"complete_place_names": [
{
"place_name_type": "MunicipalJurisdiction",
"place_name_value": "Asdf"
},
{
"place_name_type": "County",
"place_name_value": "Allegheny"
}
],
"state": "PA",
"zip_code": "33333"
}
},
"registration_address_is_mailing_address": true,
"name": {
"first_name": "Asdf",
"last_name": "Asdf",
"middle_name": "",
"title_prefix": "Ms",
"title_suffix": ""
},
"gender": "female",
"race": "Other",
"party": "Republican",
"voter_classifications": [
{
"type": "eighteen_on_election_day",
"assertion": true
},
{
"type": "united_states_citizen",
"assertion": true
}
],
"signature": {
"mime_type": "image/png",
"image": "iVBORw0KGgoAAAANSUhEUgAAALQAAAA8CAYAAADPLpCHAAAABHNCSVQICAgIfAhkiAAAATZJREFUeJzt27FuwjAUhtHrymTOHIaMzJl5LWZelqdAQqQbSys1A7TqzzmSFyfDHT5Z8uC2rutaEOLjrweAZxI0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRR+pafrtdrnc/n2u/3dbvd6n6/P1ZrrVpr1XuvcRzrcDjU8Xh89dzwrbblTWFr7TdmeQuecL7WphP6crnUPM91Op2+fNvtdtV7r3mea1mWx/4wDDVNU43j+Lxp4QebTmj4L1wKiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgifIJmuIna8A1nG8AAAAASUVORK5CYII="
},
"voter_ids": [
{
"type": "drivers_license",
"string_value": "",
"attest_no_such_id": true
},
{
"type": "ssn4",
"string_value": "",
"attest_no_such_id": true
}
],
"contact_methods": [],
"additional_info": [
{
"name": "preferred_language",
"string_value": "English"
},
{
"name": "assistant_declaration",
"string_value": "true"
}
]
}
}
}
}
then any partial information I added will be sent via Grommet.
This is not entirely correct. You're very close on how to reproduce the rocky error. However, Grommet is not including partial data for the assistant object.
I took your clues and ran a test against staging and noticed that we pass back the assistant declaration under the "additional_info" array. Rocky is checking that (as there is nothing else for Rocky to check other than the absence of the assistant object). So, if you were to fill in everything except that declaration checkbox and then uncheck the "received assistance" checkbox, the error would not occur.
Here is an example of the JSON that is causing the issue.
{
"rocky_request": {
"lang": "en",
"phone_type": "Mobile",
"partner_id": "1",
"opt_in_email": false,
"opt_in_sms": false,
"opt_in_volunteer": false,
"partner_opt_in_email": true,
"partner_opt_in_sms": true,
"partner_opt_in_volunteer": false,
"finish_with_state": true,
"created_via_api": true,
"source_tracking_id": "Asdf",
"partner_tracking_id": "32333",
"geo_location": {
"lat": 0,
"long": 0
},
"open_tracking_id": "Asdf",
"voter_records_request": {
"type": "registration",
"generated_date": "2016-10-03T15:37Z",
"voter_registration": {
"date_of_birth": "1998-01-01",
"registration_address": {
"numbered_thoroughfare_address": {
"complete_street_name": "Sadf",
"complete_sub_address": {
"sub_address_type": "APT",
"sub_address": ""
},
"complete_place_names": [
{
"place_name_type": "MunicipalJurisdiction",
"place_name_value": "Asdf"
},
{
"place_name_type": "County",
"place_name_value": "Allegheny"
}
],
"state": "PA",
"zip_code": "33333"
}
},
"registration_address_is_mailing_address": true,
"name": {
"first_name": "Asdf",
"last_name": "Asdf",
"middle_name": "",
"title_prefix": "Ms",
"title_suffix": ""
},
"gender": "female",
"race": "Other",
"party": "Republican",
"voter_classifications": [
{
"type": "eighteen_on_election_day",
"assertion": true
},
{
"type": "united_states_citizen",
"assertion": true
}
],
"signature": {
"mime_type": "image/png",
"image": "iVBORw0KGgoAAAANSUhEUgAAALQAAAA8CAYAAADPLpCHAAAABHNCSVQICAgIfAhkiAAAATZJREFUeJzt27FuwjAUhtHrymTOHIaMzJl5LWZelqdAQqQbSys1A7TqzzmSFyfDHT5Z8uC2rutaEOLjrweAZxI0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETRdBEETRR+pafrtdrnc/n2u/3dbvd6n6/P1ZrrVpr1XuvcRzrcDjU8Xh89dzwrbblTWFr7TdmeQuecL7WphP6crnUPM91Op2+fNvtdtV7r3mea1mWx/4wDDVNU43j+Lxp4QebTmj4L1wKiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgifIJmuIna8A1nG8AAAAASUVORK5CYII="
},
"voter_ids": [
{
"type": "drivers_license",
"string_value": "",
"attest_no_such_id": true
},
{
"type": "ssn4",
"string_value": "",
"attest_no_such_id": true
}
],
"contact_methods": [],
"additional_info": [
{
"name": "preferred_language",
"string_value": "English"
},
{
"name": "assistant_declaration",
"string_value": "true"
}
]
}
}
}
}