Logstash - _jsonparsefailure on valid json in udp input

Yes, you have right it is JSON format. My mistake
Try not to use UTF-8 as codec, but most likely backslash is a problem.
Use gsub to remove backslash then apply JSON codec in filter
gsub => [ "message", '' , '"' ]