diff --git a/singer_sdk/target_base.py b/singer_sdk/target_base.py index 8ecdfa851..e600b6b51 100644 --- a/singer_sdk/target_base.py +++ b/singer_sdk/target_base.py @@ -334,7 +334,8 @@ def _process_record_message(self, message_dict: dict) -> None: self._assert_line_requires(message_dict, requires={"stream", "record"}) stream_name = message_dict["stream"] - self._assert_sink_exists(stream_name) + if stream_name not in self.mapper.stream_maps: + self._assert_sink_exists(stream_name) for stream_map in self.mapper.stream_maps[stream_name]: raw_record = copy.copy(message_dict["record"]) @@ -343,6 +344,7 @@ def _process_record_message(self, message_dict: dict) -> None: # Record was filtered out by the map transform continue + self._assert_sink_exists(stream_map.stream_alias) sink = self.get_sink(stream_map.stream_alias, record=transformed_record) context = sink._get_context(transformed_record) # noqa: SLF001 if sink.include_sdc_metadata_properties: