# Logstash unable to receive data from MQTT

**URL:** <https://discuss.elastic.co/t/logstash-unable-to-receive-data-from-mqtt/347712>\
**Category:** Logstash\
**Created:** [November 22, 2023, 9:35am UTC](https://discuss.elastic.co/t/logstash-unable-to-receive-data-from-mqtt/347712 "2023-11-22T09:35:57Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Shah\_Zain](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/shah_zain/32/127911_2.png) [@Shah\_Zain](https://discuss.elastic.co/u/Shah_Zain)\
**Post date:** [November 22, 2023, 9:35am UTC](https://discuss.elastic.co/t/logstash-unable-to-receive-data-from-mqtt/347712/1 "2023-11-22T09:35:57Z")

</div>

Logstash unable to receive data from MQTT. Getting this from logs:

> //Stack: C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86\_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/logstash-input-mqtt-0.0.2/lib/logstash/inputs/mqtt.rb:63:in `block in run' C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/logstash-core/lib/logstash/codecs/delegator.rb:64:in `block in decode'  
> C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86\_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/logstash-codec-plain-3.1.0/lib/logstash/codecs/plain.rb:54:in `decode' C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/logstash-core/lib/logstash/codecs/delegator.rb:62:in `block in decode'  
> org/logstash/instrument/metrics/AbstractSimpleMetricExt.java:74:in `time' org/logstash/instrument/metrics/AbstractNamespacedMetricExt.java:68:in `time'  
> C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86\_64/logstash-8.11.1/logstash-core/lib/logstash/codecs/delegator.rb:61:in `decode' C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/logstash-input-mqtt-0.0.2/lib/logstash/inputs/mqtt.rb:62:in `block in run'  
> C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86\_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/mqtt-0.6.0/lib/mqtt/client.rb:392:in `block in get' C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/mqtt-0.6.0/lib/mqtt/client.rb:424:in `block in get\_packet'  
> org/jruby/RubyKernel.java:1586:in `loop' C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/mqtt-0.6.0/lib/mqtt/client.rb:422:in `get\_packet'  
> C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86\_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/mqtt-0.6.0/lib/mqtt/client.rb:391:in `get' C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/logstash-input-mqtt-0.0.2/lib/logstash/inputs/mqtt.rb:61:in `run'  
> C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86\_64/logstash-8.11.1/logstash-core/lib/logstash/java\_pipeline.rb:414:in `inputworker' C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/logstash-core/lib/logstash/java_pipeline.rb:405:in `block in start\_input'  
> [2023-11-22T09:32:55,314][ERROR][logstash.javapipeline][main][f703af6384f6f11c9402520844f19db1b69aebf72a7dae8db7e841b01fe5b0ab] A plugin had an unrecoverable error. Will restart this plugin.  
> Pipeline\_id:main  
> Plugin: \<LogStash::Inputs::Mqtt topic=\>"Application1/Message", id=\>"f703af6384f6f11c9402520844f19db1b69aebf72a7dae8db7e841b01fe5b0ab", qos=\>0, port=\>1883, enable\_metric=\>true, codec=\>\<LogStash::Codecs::Plain id=\>"plain\_0495dd43-938f-4077-9776-aeec7438618a", enable\_metric=\>true, charset=\>"UTF-8"\>, mqttHost=\>"localhost", ssl=\>false, client\_id=\>"logstash-mqtt-inputx5vl", clean\_session=\>true\>  
> Error: undefined method `' for #LogStash::Event:0x76884d8d  
> Exception: NoMethodError

my config file

```auto

input {
  mqtt {
    port => 1883
    topic => ["Application1/Message"]
    qos => 0
  }
}

filter {
}

output {
  stdout { codec => rubydebug }

  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "test.logstash"
    user => "elastic"
    password => ""
  }
}

```

---

<div class="post-metadata">

**Author:** ![leandrojmp](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/leandrojmp/32/107231_2.png) [@leandrojmp](https://discuss.elastic.co/u/leandrojmp)\
**Post date:** [November 22, 2023, 1:00pm UTC](https://discuss.elastic.co/t/logstash-unable-to-receive-data-from-mqtt/347712/2 "2023-11-22T13:00:36Z")

</div>

This plugin is a third-party plugin, it is not developed by Elastic.

It seems that development is stalled, the last commit was 5 years ago, as you can see in the [repository](https://github.com/jurek7/logstash-input-mqtt).

It may be some incompatibility issue with newer versions, you need to contact directly the developer of the plugin.

Also, checking in the same [repository](https://github.com/jurek7/logstash-input-mqtt#3-usage), the `topic` option in the example input is a string, not an array like you configured, have you try to change it to `topic => "Application1/Message"` to see if it works?

---

<div class="post-metadata">

**Author:** ![Shah\_Zain](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/shah_zain/32/127911_2.png) [@Shah\_Zain](https://discuss.elastic.co/u/Shah_Zain)\
**Post date:** [November 22, 2023, 1:46pm UTC](https://discuss.elastic.co/t/logstash-unable-to-receive-data-from-mqtt/347712/3 "2023-11-22T13:46:37Z")

</div>

But the one i have downloaded is nov 2023 build. [Download Logstash Free | Get Started Now | Elastic](https://www.elastic.co/downloads/logstash) after changing to Application1/Message I am getting same error. but if i add mqttHost =\> "localhost" I get different error:

```auto

Plugin: <LogStash::Inputs::Mqtt topic=>"Application1/Message", mqttHost=>"localhost", id=>"9747185c6633272ffae6442affc5fadc9e6830b41fae12a56fc4752b5078bc5f", qos=>0, port=>1883, client_id=>"logstash_1", enable_metric=>true, codec=><LogStash::Codecs::Plain id=>"plain_614ff558-2654-4f91-bffd-19dced545276", enable_metric=>true, charset=>"UTF-8">, ssl=>false, clean_session=>true>
  Error: undefined method `[]' for #<LogStash::Event:0x1f361496>
  Exception: NoMethodError
  Stack: C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/logstash-input-mqtt-0.0.2/lib/logstash/inputs/mqtt.rb:63:in `block in run'
C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/logstash-core/lib/logstash/codecs/delegator.rb:64:in `block in decode'
C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/logstash-codec-plain-3.1.0/lib/logstash/codecs/plain.rb:54:in `decode'
C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/logstash-core/lib/logstash/codecs/delegator.rb:62:in `block in decode'
org/logstash/instrument/metrics/AbstractSimpleMetricExt.java:74:in `time'
org/logstash/instrument/metrics/AbstractNamespacedMetricExt.java:68:in `time'
C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/logstash-core/lib/logstash/codecs/delegator.rb:61:in `decode'
C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/logstash-input-mqtt-0.0.2/lib/logstash/inputs/mqtt.rb:62:in `block in run'
C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/mqtt-0.6.0/lib/mqtt/client.rb:392:in `block in get'
C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/mqtt-0.6.0/lib/mqtt/client.rb:424:in `block in get_packet'
org/jruby/RubyKernel.java:1586:in `loop'
C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/mqtt-0.6.0/lib/mqtt/client.rb:422:in `get_packet'
C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/mqtt-0.6.0/lib/mqtt/client.rb:391:in `get'
C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/logstash-input-mqtt-0.0.2/lib/logstash/inputs/mqtt.rb:61:in `run'
C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/logstash-core/lib/logstash/java_pipeline.rb:414:in `inputworker'
C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/logstash-core/lib/logstash/java_pipeline.rb:405:in `block in start_input'

```

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/9/c/9cab9824edf04362695b5aab6c7a8d0621ea6154.png)

---

<div class="post-metadata">

**Author:** ![leandrojmp](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/leandrojmp/32/107231_2.png) [@leandrojmp](https://discuss.elastic.co/u/leandrojmp)\
**Post date:** [November 22, 2023, 1:51pm UTC](https://discuss.elastic.co/t/logstash-unable-to-receive-data-from-mqtt/347712/4 "2023-11-22T13:51:07Z")

</div>

The Logstash version is unrelated, the mqtt input plugin is not made by Elastic, it is a third-party plugin that you can install in Logstash.

According to the repository of the plugin, the last time it was updated was 5 years ago, it may have some incompatibility issues with newer Logstash versions since it cannot start.

You need to contact the developer of the plugin.

---

<div class="post-metadata">

**Author:** ![Shah\_Zain](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/shah_zain/32/127911_2.png) [@Shah\_Zain](https://discuss.elastic.co/u/Shah_Zain)\
**Post date:** [November 22, 2023, 2:03pm UTC](https://discuss.elastic.co/t/logstash-unable-to-receive-data-from-mqtt/347712/5 "2023-11-22T14:03:22Z")

</div>

That is strange, because we are using the same in production env and it is working. The error is present only when I configure it locally.

---

<div class="post-metadata">

**Author:** ![leandrojmp](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/leandrojmp/32/107231_2.png) [@leandrojmp](https://discuss.elastic.co/u/leandrojmp)\
**Post date:** [November 22, 2023, 2:31pm UTC](https://discuss.elastic.co/t/logstash-unable-to-receive-data-from-mqtt/347712/6 "2023-11-22T14:31:53Z")

</div>

> [@Shah\_Zain](#):
>
> That is strange, because we are using the same in production env and it is working. The error is present only when I configure it locally.

How did you install it?

I was looking into the spec of the plugin, and if you use `logstash-plugin install logstash-input-mqtt`, it will install [this one](https://github.com/widarlein/logstash-input-mqtt), which is not the one I linked in a previous post.

But this plugin also does not have an update in years.

Since you said it is working in your production environment, what is the difference to your local environment? Is Logstash and the operating system in the same version?

---

<div class="post-metadata">

**Author:** ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)\
**Post date:** [November 22, 2023, 6:08pm UTC](https://discuss.elastic.co/t/logstash-unable-to-receive-data-from-mqtt/347712/7 "2023-11-22T18:08:10Z")

</div>

> [@Shah\_Zain](#):
>
> ```auto
> Error: undefined method `[]' for #<LogStash::Event:0x1f361496>
> Exception: NoMethodError
> Stack: C:/Users/Shah Zain/Downloads/logstash-8.11.1-windows-x86_64/logstash-8.11.1/vendor/bundle/jruby/3.1.0/gems/logstash-input-mqtt-0.0.2/lib/logstash/inputs/mqtt.rb:63:in `block in run'
> 
> ```

That looks very much like it is running [this](https://github.com/widarlein/logstash-input-mqtt/blob/3f6d7f475263d57201057a3c6d26ec9abd85802f/lib/logstash/inputs/mqtt.rb#L63) code. Although that is version 0.0.1 and it was updated in 0.0.2 (6 years ago) to be compatible with logstash version 5. You appear to be running 0.0.2, but that would not produce that error.

Either way, you will need to pick which of the two mqtt plugins you want to run and then update it to work with a current logstash version.

---

<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:** [December 20, 2023, 6:08pm UTC](https://discuss.elastic.co/t/logstash-unable-to-receive-data-from-mqtt/347712/8 "2023-12-20T18:08:23Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
