Hello all, I am using tap-recharge and target-reds...
# troubleshooting
m
Hello all, I am using tap-recharge and target-redshift and when i am running the pipeline i am facing below error:
recharge-orders | File .meltano/extractors/recharge-orders/venv/bin/tap-recharge", line 8, in <module> recharge-orders | sys.exit(main()) recharge-orders | File .meltano/extractors/recharge-orders/venv/lib/python3.8/site-packages/singer/utils.py", line 229, in wrapped recharge-orders | return fnc(*args, **kwargs) recharge-orders | File "/home/.meltano/extractors/recharge-orders/venv/lib/python3.8/site-packages/tap_recharge/__init__.py", line 44, in main recharge-orders | sync( recharge-orders | File "/home/ubuntu/rm-projects/meltano-projects/dev-.meltano/extractors/recharge-orders/venv/lib/python3.8/site-packages/tap_recharge/sync.py", line 35, in sync recharge-orders | state = stream_obj.sync( recharge-orders | File "/home/ubuntu/rm-projects/meltano-projects/.meltano/extractors/recharge-orders/venv/lib/python3.8/site-packages/tap_recharge/streams.py", line 138, in sync recharge-orders | record_datetime = utils.strptime_to_utc(transformed_record[self.replication_key]) recharge-orders | File "/home/ubuntu/rm-projects.meltano/extractors/recharge-orders/venv/lib/python3.8/site-packages/singer/utils.py", line 61, in strptime_to_utc recharge-orders | d_object = dateutil.parser.parse(dtimestr) recharge-orders | File "/home/ubuntu/rm-projectsmeltano/extractors/recharge-orders/venv/lib/python3.8/site-packages/dateutil/parser/_parser.py", line 1368, in parse recharge-orders | return DEFAULTPARSER.parse(timestr, **kwargs) recharge-orders | File "/home/ubuntu/rm-projects.meltano/extractors/recharge-orders/venv/lib/python3.8/site-packages/dateutil/parser/_parser.py", line 640, in parse recharge-orders | res, skipped_tokens = self._parse(timestr, **kwargs) recharge-orders | File "/home/ubuntu/rm-projects.meltano/extractors/recharge-orders/venv/lib/python3.8/site-packages/dateutil/parser/_parser.py", line 719, in _parse recharge-orders | l = _timelex.split(timestr) # Splits the timestr into tokens recharge-orders | File "/home/ubuntu/rm-projects.meltano/extractors/recharge-orders/venv/lib/python3.8/site-packages/dateutil/parser/_parser.py", line 201, in split recharge-orders | return list(cls(s)) recharge-orders | File "/home/ubuntu.meltano/extractors/recharge-orders/venv/lib/python3.8/site-packages/dateutil/parser/_parser.py", line 69, in __init__ recharge-orders | raise TypeError('Parser must be a string or character stream, not ' recharge-orders | TypeError: Parser must be a string or character stream, not NoneType
Copy code
meltano | Extraction failed (1): TypeError: Parser must be a string or character stream, not NoneType meltano | ELT could not be completed: Extractor failed
If someone faced the similar problem or can add some point then it would very helpful Thank you so much. @edward_ryan @jo_pearson
p
@monika_rajput hmm it looks like its a problem with parsing the record datetime here. Youre getting records from the API in this get_records method but when retrieving the replication key, which is updated_at for the orders stream, its present but its just an empty string. Or this might be yielding a single empty record. I wonder if there was a change to the API or if maybe the whole record is coming back as empty strings. Looks like theres an open issue.
j
@monika_rajput to @pat_nadolny’s point, it looks like people started reporting this error around the time recharge updated the API. I'm not seeing anything in the gap's change log that would explain the error but it's something we can look into
m
Thank you so much @pat_nadolny I'am so sorry, i missed this thread. It's all make sense. @jo_pearson we need to dig deep into the code.