For data connector definitions (DCR + KQL transforms), treat the DCR streamDeclarations.columns as the schema contract and ensure KQL transforms match that contract:
TimeGenerated, don’t declare/use it in the DCR; instead map it in KQL from the correct source timestamp.dynamic in the DCR (e.g., list fields like DetectionList), don’t coerce it with tostring(...) in KQL—keep it as dynamic (or map it consistently with the declared type).abx_metadata_event_type_s, abx_body_...).project-away when it can break table creation/downstream expectations. Use project <explicit column list> (and/or explicit arg_max(...) column lists) so the resulting schema is deterministic.Example pattern (explicit + type-aligned):
source
| extend
EventTimestamp = todatetime(created_at),
// keep dynamic/list fields as-is if DCR declares dynamic
DetectionListDyn = DETECTION_LIST
| project
TimeGenerated = EventTimestamp,
DetectionList = DetectionListDyn,
// add only stable columns you declare in the DCR
HostId, IPAddress, TrackingMethod, OperatingSystem