Skip to content

[Bug]: VerneMQ 2.1.2 and plugins.vmq_passwd #2472

@maelp

Description

@maelp

Environment

  • VerneMQ Version: 2.1.2
  • OS: Docker
  • Cluster size/standalone: standalone

Current Behavior

I'm doing the following in order to configure a setup where:

  • my devices can connect through certificates
  • I have root user access through username password for my backend

I'm creating a passwd.plain file in the Docker container, then the Docker startup script is something like this

#!/bin/sh
set -e

echo "🔐 VerneMQ startup: Preparing password file..."

# Always copy plain password file and hash it
# This ensures passwords are always hashed exactly once from the known plain source
echo "📋 Copying plain passwords from vmq.passwd.plain..."
cp /vernemq/etc/vmq.passwd.plain /vernemq/etc/vmq.passwd

echo "🔒 Hashing passwords using vmq-passwd -U..."
/vernemq/bin/vmq-passwd -U /vernemq/etc/vmq.passwd

echo "✓ Passwords hashed successfully"

echo "🚀 Starting VerneMQ..."
exec /usr/sbin/start_vernemq

it seems to start the server, but then it keeps crashing with errors related to the password manager, and I'm not sure how to troubleshoot? eg

  2026-01-27T16:09:19.045769+00:00 [error] <0.581.0> proc_lib:crash_report/4:950: crasher:
  initial call: vmq_passwd_reloader:init/1, pid: <0.581.0>, registered_name: [], error:
  {badarg,[{erlang,apply,[vmq_swc_plugin,cluster_events_add_handler,undefined],[{error_info,#
  {module => erl_erts_errors}}]},{vmq_passwd_reloader,init,1,[{file,"/opt/vernemq/apps/vmq_pa
  sswd/src/vmq_passwd_reloader.erl"},{line,70}]},{gen_server,init_it,2,[{file,"gen_server.erl
  "},{line,2229}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,2184}]},{proc_lib,ini
  t_p_do_apply,3,[{file,"proc_lib.erl"},{line,329}]}]}, ancestors:
  [vmq_passwd_sup,<0.579.0>], message_queue_len: 0, messages: [], links: [<0.580.0>],
  dictionary: [], trap_exit: false, status: running, heap_size: 1598, stack_size: 29,
  reductions: 499; neighbours:
  2026-01-27T16:09:19.046425+00:00 [error] <0.580.0> supervisor:start_children/2:937:
  Supervisor: {local,vmq_passwd_sup}. Context: start_error. Reason: {badarg,[{erlang,apply,[v
  mq_swc_plugin,cluster_events_add_handler,undefined],[{error_info,#{module =>
  erl_erts_errors}}]},{vmq_passwd_reloader,init,1,[{file,"/opt/vernemq/apps/vmq_passwd/src/vm
  q_passwd_reloader.erl"},{line,70}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,22
  29}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,2184}]},{proc_lib,init_p_do_appl
  y,3,[{file,"proc_lib.erl"},{line,329}]}]}. Offender: id=vmq_passwd_reloader,pid=undefined.
  2026-01-27T16:09:19.047601+00:00 [error] <0.578.0> proc_lib:crash_report/4:950: crasher:
  initial call: application_master:init/3, pid: <0.578.0>, registered_name: [], exit:
  {{{shutdown,{failed_to_start_child,vmq_passwd_reloader,{badarg,[{erlang,apply,[vmq_swc_plug
  in,cluster_events_add_handler,undefined],[{error_info,#{module =>
  erl_erts_errors}}]},{vmq_passwd_reloader,init,1,[{file,"/opt/vernemq/apps/vmq_passwd/src/vm
  q_passwd_reloader.erl"},{line,70}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,22
  29}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,2184}]},{proc_lib,init_p_do_appl
  y,3,[{file,"proc_lib.erl"},{line,329}]}]}}},{vmq_passwd_app,start,[normal,[]]}},[{applicati

Expected behaviour

It should run with the password file

Configuration, logs, error output, etc.

Code of Conduct

  • I agree to follow the VerneMQ's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions