Skip to content

EMQX Plugin Load Fails — Complete Guide

DodaTech Updated 2026-06-26 1 min read

In this tutorial, you'll learn about EMQX Plugin Load Fails. We cover key concepts, practical examples, and best practices.

The Problem

Custom EMQX plugin fails to load or start.

Quick Fix

Wrong

sudo emqx_ctl plugins load my_plugin  # Plugin not found
Plugin not found or load error.
# 1. Build plugin (requires Erlang/OTP)
cd my_plugin
rebar3 compile
rebar3 tar  # Creates .tar.gz

# 2. Copy to EMQX plugins directory
sudo cp _build/default/lib/*.tar.gz /usr/lib/emqx/plugins/

# 3. Load plugin
sudo emqx_ctl plugins load my_plugin

# 4. Check plugin status
sudo emqx_ctl plugins list

# 5. Verify in logs
sudo journalctl -u emqx | grep my_plugin
Plugin loaded and started. Listed in emqx_ctl plugins list.

Prevention

EMQX plugins are Erlang applications (.ez or .tar.gz format). Place in EMQX_PLUGINS__INSTALL_DIR (/usr/lib/emqx/plugins/). Enable auto-start in emqx.conf: plugins.plugin_name { enable = true }. Check EMQX and plugin version compatibility. Use the EMQX Plugin Template for new development.

DodaTech engineers apply these same patterns across Doda Browser, DodaZIP, and Durga Antivirus Pro for production IoT reliability.

FAQ

### What language are EMQX plugins written in?

Erlang (native) or Elixir. EMQX Plugin API is Erlang-based. For integration with other languages, use the rule engine webhook or bridge.

Where to place plugins?

/usr/lib/emqx/plugins/ (Linux). Set EMQX_PLUGINS__INSTALL_DIR env var to customize.

Can I load plugins without restart?

Yes: emqx_ctl plugins load . This hot-loads without broker restart. Unload with emqx_ctl plugins unload .

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro