diff --git a/core/dbt/events/functions.py b/core/dbt/events/functions.py index e67cbd8b8b8..cd117b1931d 100644 --- a/core/dbt/events/functions.py +++ b/core/dbt/events/functions.py @@ -132,16 +132,17 @@ def event_to_serializable_dict( data = dict() node_info = dict() if hasattr(e, '__dataclass_fields__'): - for field, value in dataclasses.asdict(e).items(): # type: ignore[attr-defined] - _json_value = e.fields_to_json(value) + if isinstance(e, NodeInfo): + node_info = dataclasses.asdict(e.get_node_info()) - if isinstance(e, NodeInfo): - node_info = dataclasses.asdict(e.get_node_info()) + for field, value in dataclasses.asdict(e).items(): # type: ignore[attr-defined] + if field not in ["code", "report_node_data"]: + _json_value = e.fields_to_json(value) - if not isinstance(_json_value, Exception): - data[field] = _json_value - else: - data[field] = f"JSON_SERIALIZE_FAILED: {type(value).__name__, 'NA'}" + if not isinstance(_json_value, Exception): + data[field] = _json_value + else: + data[field] = f"JSON_SERIALIZE_FAILED: {type(value).__name__, 'NA'}" event_dict = { 'type': 'log_line', @@ -153,7 +154,8 @@ def event_to_serializable_dict( 'data': data, 'invocation_id': e.get_invocation_id(), 'thread_name': e.get_thread_name(), - 'node_info': node_info + 'node_info': node_info, + 'code': e.code } return event_dict