Evan Guyot
07/25/2025, 10:18 AMnull, but completely missing — which leads to a Singer exception.
I was wondering if there's a catalog's property designed to handle this kind of situation?
I’ve already tried defining the field as nullable and using additionalProperties, but I’m still encountering the Singer error when the field is absent from the object.
Here is the Singer error : 2025-07-25T10:06:57.048305Z [error ] Loading failed code=1 message="singer_sdk.exceptions.InvalidRecord: Record Message Validation Error: {'sub_prop_1': 'abc', 'sub_prop_2': 'def'} is not of type 'string'"
Here is what i have tried in the catalog :
{
"streams": [
{
"tap_stream_id": "obj",
...,
"schema": {
"properties": {
"prop_1": {
"type": ["array", "null"],
"items": {
"type": "object",
"properties": {
"sub_prop_1": { "type": ["string", "null"] },
"sub_prop_2": { "type": ["string", "null"] },
"optional_sub_prop_3": { "type": ["string", "null"] }
},
"additionalProperties": true
}
}
}
}
}
]
}
Thanks in advance to anyone who takes the time to help ☺️Reuben (Matatika)
07/25/2025, 11:01 AM{'sub_prop_1': 'abc', 'sub_prop_2': 'def'} is not of type 'string' as if you had
"items": {
"type": "string"
}
What command are you running?Evan Guyot
07/25/2025, 11:43 AMmeltano el --full-refresh tap-jira target-postgres --catalog tap-jira-catalog.json
i believe the command works, the error occurs after adding the property i need which is : "optional_sub_prop_3": { "type": ["string", "null"] }Reuben (Matatika)
07/25/2025, 2:14 PMmeltano invoke tap-jira | grep '{"type":"RECORD"' | grep '"prop_1":'
so we can inspect the format of the raw record?Evan Guyot
07/28/2025, 7:04 AM"prop_1":[{"sub_prop_1":"<https://google.com>","sub_prop_2":"123","sub_prop_3":"v1.2.3","sub_prop_4":false,"sub_prop_5":true}]Reuben (Matatika)
07/28/2025, 2:14 PMis not of type 'string' error after adding "optional_sub_prop_3": { "type": ["string", "null"] } to the schema? I did check this in https://www.jsonschemavalidator.net/ and everything came back fine...Evan Guyot
07/30/2025, 9:21 AMoptional_sub_prop_3 property is missing from the REST API response. For some reason, it's not always included, but I do need this information when it's present. That's why I was looking for a way to indicate to the catalog that this property may not always be thereReuben (Matatika)
07/30/2025, 10:26 PMvalidate_records: false for target-postgres and see what gets loaded? https://hub.meltano.com/loaders/target-postgres#validate_records-setting