Hi Team, I am working on a new target i.e. target...
# best-practices
s
Hi Team, I am working on a new target i.e. target-jira and facing one issue when target is processing the records, Even though my records are in proper format like - first schema and then records, still I am getting issue like -
singer_sdk.exceptions.RecordsWithoutSchemaException: A record for stream 'accounts' was encountered before a corresponding schema. Check that the Tap correctly implements the Singer spec.
Full Error Log:
Copy code
$ dos2unix out_cleaned.jsonl
dos2unix: converting file out_cleaned.jsonl to Unix format...
(sibaVenv)
SiNayak@INBAWN172239 MINGW64 /c/Siba_/Work/LocalSetup/Backend/backend_05062025/backend_2304
$ cat out_cleaned.jsonl | meltano invoke target-jira
2025-07-17T20:07:23.746313Z [warning  ] Failed to create symlink to 'meltano.exe': administrator privilege required
2025-07-17T20:07:23.761502Z [info     ] Environment 'dev' is active
INFO:target-jira:target-jira v0.0.1, Meltano SDK v0.42.1
INFO:target-jira:Skipping parse of env var settings...
2025-07-18 01:37:28,712 | INFO     | target-jira          | Target 'target-jira' is listening for input from tap.
2025-07-18 01:37:28,713 | INFO     | target-jira          | Adding sink for stream: accounts with schema keys: ['Id', 'Name']
2025-07-18 01:37:28,713 | INFO     | target-jira.accounts | Initializing target sink for stream 'accounts'...
2025-07-18 01:37:28,716 | INFO     | target-jira          | Sink added: <target_jira.sinks.JiraSink object at 0x000001B75A72D070>
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304\.meltano\loaders\target-jira\venv\Scripts\target-jira.exe\__main__.py", line 7, in <module>
  File "C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304\.meltano\loaders\target-jira\venv\Lib\site-packages\click\core.py", line 1442, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304\.meltano\loaders\target-jira\venv\Lib\site-packages\click\core.py", line 1363, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304\.meltano\loaders\target-jira\venv\Lib\site-packages\singer_sdk\plugin_base.py", line 84, in invoke
    return super().invoke(ctx)
           ^^^^^^^^^^^^^^^^^^^
  File "C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304\.meltano\loaders\target-jira\venv\Lib\site-packages\click\core.py", line 1226, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304\.meltano\loaders\target-jira\venv\Lib\site-packages\click\core.py", line 794, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304\.meltano\loaders\target-jira\venv\Lib\site-packages\singer_sdk\target_base.py", line 572, in invoke
    target.listen(file_input)
  File "C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304\.meltano\loaders\target-jira\venv\Lib\site-packages\singer_sdk\_singerlib\encoding\_base.py", line 48, in listen
    self._process_lines(file_input or self.default_input)
  File "C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304\.meltano\loaders\target-jira\venv\Lib\site-packages\singer_sdk\target_base.py", line 304, in _process_lines
    counter = super()._process_lines(file_input)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304\.meltano\loaders\target-jira\venv\Lib\site-packages\singer_sdk\_singerlib\encoding\_base.py", line 70, in _process_lines
    self._process_record_message(line_dict)
  File "C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304\.meltano\loaders\target-jira\venv\Lib\site-packages\singer_sdk\target_base.py", line 344, in _process_record_message
    self._assert_sink_exists(stream_map.stream_alias)
  File "C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304\.meltano\loaders\target-jira\venv\Lib\site-packages\singer_sdk\target_base.py", line 280, in _assert_sink_exists
    raise RecordsWithoutSchemaException(msg)
singer_sdk.exceptions.RecordsWithoutSchemaException: A record for stream 'accounts' was encountered before a corresponding schema. Check that the Tap correctly implements the Singer spec.
I have attached few files for reference.
e
It might help to look at the code. My guess is that the schema message is not being process and the corresponding sink is not being created
s
sure. One more observation is - when I am keeping only SCHEMA line (Only the first line of the out_cleaned.jsonl), then its able to proceed. The issue comes when Records come into the picture.
Copy code
(sibaVenv) PS C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304> Get-Content .\out_clean.jsonl  -TotalCount 1 | meltano invoke target-jira                                                     
2025-07-18T04:29:19.454714Z [warning  ] Failed to create symlink to 'meltano.exe': administrator privilege required
2025-07-18T04:29:19.481947Z [info     ] Environment 'dev' is active   
2025-07-18 09:59:23,575 | INFO     | target-jira          | Target 'target-jira' is listening for input from tap.
2025-07-18 09:59:23,576 | INFO     | target-jira          | Adding sink for stream: accounts with schema keys: ['Id', 'Name']
2025-07-18 09:59:23,577 | INFO     | target-jira.accounts | Initializing target sink for stream 'accounts'...
2025-07-18 09:59:23,579 | INFO     | target-jira          | Sink added: <target_jira.sinks.JiraSink object at 0x000001DECDC9CC20>      
2025-07-18 09:59:23,580 | INFO     | target-jira          | Target 'target-jira' completed reading 1 lines of input (1 schemas, 0 records, 0 batch manifests, 0 state messages).
2025-07-18 09:59:23,581 | INFO     | target-jira          | Emitting completed target state {}
{}
(sibaVenv) PS C:\Siba_\Work\LocalSetup\Backend\backend_05062025\backend_2304>
Attached the files for your reference.