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