We've run into many, many cases where a specific target receives a JSON schema type that it doesn't expect and then immediately terminates the entire stream.
Rather than failing the sync entirely, we'd like to propose a best practice of always having a failsafe data type which handles two common scenarios:
- A
catch for parsing exceptions when reading the json schema type. For instance, a $ref or missing properties can cause KeyError during type evaluation. These should be caught and handled with a default type - such as string.
- A final
else statement at the end of all known cases. Similarly as with the above, if all known cases are evaluated and we've received a type we don't recognize, we should again default to string of similar so that the node's data can still be serialized without terminating the sync.
We've run into many, many cases where a specific target receives a JSON schema type that it doesn't expect and then immediately terminates the entire stream.
Rather than failing the sync entirely, we'd like to propose a best practice of always having a failsafe data type which handles two common scenarios:
catchfor parsing exceptions when reading the json schema type. For instance, a$refor missingpropertiescan causeKeyErrorduring type evaluation. These should be caught and handled with a default type - such asstring.elsestatement at the end of all known cases. Similarly as with the above, if all known cases are evaluated and we've received a type we don't recognize, we should again default tostringof similar so that the node's data can still be serialized without terminating the sync.