Thanks very much magnus,
Based on your recommendations here is my final solution. I put this solution in case anyone else runs into similar issue.
I changed my filter (based on my type) to following. Adding a field in mutate created a string variable. I used this in the data match. Then it gets removed if the match worked. Everything worked great.
if "CollectorStatus" == [type] {
mutate {
add_field => {"temp_ts" => "%{system_date}"}
}
date {
match => ["temp_ts","ISO8601"]
remove_field => ["temp_ts"]
}
}