Configtest passes, but still get error on load

I have a config with translate filter:

translate {
  field => "level"
  dictionary => [
    "DEBUG", "DEBUG"
    "INFO",  "INFO"
    "WARN",  "WARN"
    "ERR",   "ERROR"
  ]
  fallback => "INFO"
  exact => true
}

The dictionary elements are not separated with commas. --configtest is happy with this, but logstash fails when it actually tries to load the config. Does this have something to do with thirdparty plugins?

What's the error message? Which version of Logstash?

logstash 2.3.3

Here's a simpler snippet, incorrect:

if ![level] {
  mutate { add_field { "level", "INFO" } }
}

passes configtest, but it should be

if ![level] {
  mutate { add_field => { "level" => "INFO" } }
}

However when actually running logstash I get error

Expected one of #, =>

Where the position is the beginning the filter {}, not anywhere near the actual error.

If this is not a known issue, or not easily reproducible, I can build a simple test case.

Yeah, that look like a bug in the configuration file parser.

Another example. I have this one config

input {
  file {
    path => "/var/log/audit/audit.log"
    type => "audit"
    add_field => {
      "service" => "audit",
      "name" => "audit"
    }
  }
}

$ service logstash restart
Configuration error. Not restarting. Re-run with configtest parameter for details

$ sudo /opt/logstash/bin/logstash --configtest /etc/logstash/conf.d/00_audit.conf
Configuration OK