Summary
When sending data to the /link and /match endpoints, "null" values in specific feature attributes cause server errors.
Impact
Invalid user data should either be ignored, or raise a 422 and specify to the user what was incorrectly specified. Letting a server error propagate through doesn't give the user enough context to know if the problem is on their end or with the system.
Steps to reproduce
The following values in the "record" input (used in /link, /match and /seed) all cause server errors.
"race" = null
"address": [{"line": null}]
"identifiers": {"type": null, "value": "X"}
Expected behavior
In the first two cases (race and address.line) we should just ignore the null and accept that payload as if the values weren't sent. In the last example, we should raise a 422 and explicitly state the identifier type is a required value.
Summary
When sending data to the
/linkand/matchendpoints, "null" values in specific feature attributes cause server errors.Impact
Invalid user data should either be ignored, or raise a 422 and specify to the user what was incorrectly specified. Letting a server error propagate through doesn't give the user enough context to know if the problem is on their end or with the system.
Steps to reproduce
The following values in the "record" input (used in
/link,/matchand/seed) all cause server errors."race" = null"address": [{"line": null}]"identifiers": {"type": null, "value": "X"}Expected behavior
In the first two cases (race and address.line) we should just ignore the null and accept that payload as if the values weren't sent. In the last example, we should raise a 422 and explicitly state the identifier type is a required value.