# Json codec crashing logstash

**URL:** <https://discuss.elastic.co/t/json-codec-crashing-logstash/33680>\
**Category:** Logstash\
**Created:** [November 3, 2015, 10:24pm UTC](https://discuss.elastic.co/t/json-codec-crashing-logstash/33680 "2015-11-03T22:24:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![treehouse](https://avatars.discourse-cdn.com/v4/letter/t/e9a140/32.png) [@treehouse](https://discuss.elastic.co/u/treehouse)\
**Post date:** [November 3, 2015, 10:24pm UTC](https://discuss.elastic.co/t/json-codec-crashing-logstash/33680/1 "2015-11-03T22:24:10Z")

</div>

I have courier input feeding the pipeline. When i try using the tcp output using `codec => json` or `codec => json_lines`, logstash crashes and spits this error --

```
LogStash::Json::GeneratorError: Failed to load class 'org.jruby.RubyObject$Access4JacksonDeserializerc66a1575': com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor
     jruby_dump at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.0.0-java/lib/logstash/json.rb:53
        to_json at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.0.0-java/lib/logstash/event.rb:158
         encode at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-codec-json-2.0.2/lib/logstash/codecs/json.rb:68
        receive at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-tcp-2.0.2/lib/logstash/outputs/tcp.rb:143
         handle at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.0.0-java/lib/logstash/outputs/base.rb:80
    output_func at (eval):60
   outputworker at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.0.0-java/lib/logstash/pipeline.rb:252
  start_outputs at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.0.0-java/lib/logstash/pipeline.rb:169

```

Here is my config --

```
input {
	stdin {}
	courier{
		port => 4546
		transport => "tls"
		ssl_certificate => "path/to/cert.crt"
		ssl_key => "path/to/cert.key"
	}
}

filter { }

output {
	stdout { codec => rubydebug }

	tcp {
		mode => "client"
		host => "172.31.6.186"
		port => 4545
		codec => json
	}
}
```

---

<div class="post-metadata">

**Author:** ![Joe\_Lawson](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/joe_lawson/32/3390_2.png) [@Joe\_Lawson](https://discuss.elastic.co/u/Joe_Lawson)\
**Post date:** [November 4, 2015, 3:20am UTC](https://discuss.elastic.co/t/json-codec-crashing-logstash/33680/2 "2015-11-04T03:20:41Z")

</div>

Try codec =\> json {}

---

<div class="post-metadata">

**Author:** ![treehouse](https://avatars.discourse-cdn.com/v4/letter/t/e9a140/32.png) [@treehouse](https://discuss.elastic.co/u/treehouse)\
**Post date:** [November 4, 2015, 9:02pm UTC](https://discuss.elastic.co/t/json-codec-crashing-logstash/33680/3 "2015-11-04T21:02:53Z")

</div>

thanks for the suggestion -- still have the same error

```
LogStash::Json::GeneratorError: Failed to load class 'org.jruby.RubyObject$Access4JacksonDeserializerc66a1575': com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor
     jruby_dump at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.0.0-java/lib/logstash/json.rb:53
        to_json at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.0.0-java/lib/logstash/event.rb:158
         encode at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-codec-json-2.0.2/lib/logstash/codecs/json.rb:68
        receive at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-tcp-2.0.2/lib/logstash/outputs/tcp.rb:143
         handle at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.0.0-java/lib/logstash/outputs/base.rb:80
    output_func at (eval):37
   outputworker at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.0.0-java/lib/logstash/pipeline.rb:252
  start_outputs at /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.0.0-java/lib/logstash/pipeline.rb:169

```

So it must have something to do with the courier input I am using, because if I just use the stdin input and take out the courier input, it works fine. So the structure of the event coming from courier seems to be an issue.. any ideas? Do I need to run it through some filter to then pass it to tcp =\> codec =\> json {} ? I actually need to use json\_lines codec, but I'm getting the same behavior for both of them.

---

<div class="post-metadata">

**Author:** ![bibikmik](https://avatars.discourse-cdn.com/v4/letter/b/898d66/32.png) [@bibikmik](https://discuss.elastic.co/u/bibikmik)\
**Post date:** [December 23, 2015, 12:48pm UTC](https://discuss.elastic.co/t/json-codec-crashing-logstash/33680/4 "2015-12-23T12:48:32Z")

</div>

> [@treehouse](#):
>
> codec =\> json

Try this:  
`codec => "json"`  
or  
`codec => "json_lines"`

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 5:17am UTC](https://discuss.elastic.co/t/json-codec-crashing-logstash/33680/5 "2017-07-06T05:17:27Z")

</div>


