Logstash extract a nested json object

The error message shows that [fields] is an object, not a string (see here to understand why). You can move arbitrary fields within an object to the root using a ruby filter. See here for an example.