<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pavithran M</title>
    <description>The latest articles on DEV Community by Pavithran M (@pavithranp12).</description>
    <link>https://dev.to/pavithranp12</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3421862%2F8507e667-aea3-4626-9e2f-1dae9c7ab27d.png</url>
      <title>DEV Community: Pavithran M</title>
      <link>https://dev.to/pavithranp12</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pavithranp12"/>
    <language>en</language>
    <item>
      <title>RabbitMQ Installation on Windows: A Complete Setup &amp; Troubleshooting Guide</title>
      <dc:creator>Pavithran M</dc:creator>
      <pubDate>Mon, 03 Aug 2026 14:29:39 +0000</pubDate>
      <link>https://dev.to/pavithranp12/rabbitmq-installation-on-windows-a-complete-setup-troubleshooting-guide-8lh</link>
      <guid>https://dev.to/pavithranp12/rabbitmq-installation-on-windows-a-complete-setup-troubleshooting-guide-8lh</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A real-world RabbitMQ installation journey on Windows—from installation to debugging Erlang compatibility, Windows services, management plugins, and startup failures.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;RabbitMQ is one of the most popular open-source message brokers used for asynchronous communication between applications. Whether you're building microservices, event-driven systems, or background processing applications, RabbitMQ provides a reliable messaging infrastructure.&lt;/p&gt;

&lt;p&gt;Installing RabbitMQ on Windows appears straightforward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install Erlang&lt;/li&gt;
&lt;li&gt;Install RabbitMQ&lt;/li&gt;
&lt;li&gt;Enable the management plugin&lt;/li&gt;
&lt;li&gt;Start the service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, in practice, installation can quickly become complicated due to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Erlang version mismatches&lt;/li&gt;
&lt;li&gt;Incorrect environment variables&lt;/li&gt;
&lt;li&gt;Windows service configuration&lt;/li&gt;
&lt;li&gt;Plugin issues&lt;/li&gt;
&lt;li&gt;Startup failures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article documents the complete installation process along with the real troubleshooting steps required to get RabbitMQ running successfully.&lt;/p&gt;




&lt;h1&gt;
  
  
  Prerequisites
&lt;/h1&gt;

&lt;p&gt;Before installing RabbitMQ, ensure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Windows 10/11&lt;/li&gt;
&lt;li&gt;Administrator privileges&lt;/li&gt;
&lt;li&gt;Internet connection&lt;/li&gt;
&lt;li&gt;Latest compatible Erlang OTP&lt;/li&gt;
&lt;li&gt;RabbitMQ Installer&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Step 1 — Install Erlang OTP
&lt;/h1&gt;

&lt;p&gt;RabbitMQ depends on Erlang Runtime.&lt;/p&gt;

&lt;p&gt;Install Erlang OTP from the official website.&lt;/p&gt;

&lt;p&gt;After installation verify it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;erl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Erlang/OTP ...

Eshell V...
1&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the command immediately returns to the command prompt, Erlang is &lt;strong&gt;not configured correctly&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Exit Erlang using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight erlang"&gt;&lt;code&gt;&lt;span class="nf"&gt;q&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 2 — Configure Environment Variables
&lt;/h1&gt;

&lt;p&gt;Create an environment variable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ERLANG_HOME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Value&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Program Files\Erlang OTP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also verify the PATH contains&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Program Files\Erlang OTP\bin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verification:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo %ERLANG_HOME%

where erl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 3 — Install RabbitMQ
&lt;/h1&gt;

&lt;p&gt;Install RabbitMQ Server.&lt;/p&gt;

&lt;p&gt;After installation verify the service.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sc query RabbitMQ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight properties"&gt;&lt;code&gt;&lt;span class="py"&gt;SERVICE_NAME&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;RabbitMQ&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 4 — Enable RabbitMQ Management Plugin
&lt;/h1&gt;

&lt;p&gt;Navigate to RabbitMQ sbin.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd "C:\Program Files\RabbitMQ Server\rabbitmq_server-4.3.4\sbin"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enable Management UI.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmq-plugins enable rabbitmq_management
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Enabling plugins on node rabbit@hostname...

rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch

started 3 plugins
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 5 — Restart RabbitMQ
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;net stop RabbitMQ

net start RabbitMQ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or restart from&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;services.msc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Step 6 — Verify Installation
&lt;/h1&gt;

&lt;p&gt;Open&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;http://localhost:15672
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Default Login&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight properties"&gt;&lt;code&gt;&lt;span class="py"&gt;Username&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;guest&lt;/span&gt;
&lt;span class="py"&gt;Password&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;guest&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  RabbitMQ Default Ports
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Port&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AMQP&lt;/td&gt;
&lt;td&gt;5672&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Management UI&lt;/td&gt;
&lt;td&gt;15672&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Erlang Distribution&lt;/td&gt;
&lt;td&gt;25672&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  Real Troubleshooting Journey
&lt;/h1&gt;

&lt;p&gt;This section documents every issue encountered during installation.&lt;/p&gt;




&lt;h1&gt;
  
  
  Problem 1
&lt;/h1&gt;

&lt;h2&gt;
  
  
  rabbitmq-plugins produced no output
&lt;/h2&gt;

&lt;p&gt;Running&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmq-plugins enable rabbitmq_management
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;returned immediately.&lt;/p&gt;

&lt;p&gt;No output.&lt;/p&gt;

&lt;p&gt;No error.&lt;/p&gt;

&lt;p&gt;Normally RabbitMQ should display&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;started 3 plugins
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Investigation
&lt;/h3&gt;

&lt;p&gt;Checked&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmq-plugins list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No output.&lt;/p&gt;

&lt;p&gt;Checked&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmqctl status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No output.&lt;/p&gt;

&lt;p&gt;This indicated RabbitMQ tools were unable to communicate with Erlang.&lt;/p&gt;




&lt;h1&gt;
  
  
  Problem 2
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Erlang immediately exited
&lt;/h2&gt;

&lt;p&gt;Running&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;erl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;returned directly to the command prompt.&lt;/p&gt;

&lt;p&gt;Instead of&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight erlang"&gt;&lt;code&gt;&lt;span class="nv"&gt;Eshell&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This confirmed Erlang itself wasn't functioning properly.&lt;/p&gt;




&lt;h1&gt;
  
  
  Problem 3
&lt;/h1&gt;

&lt;h2&gt;
  
  
  RabbitMQ Service Error 1067
&lt;/h2&gt;

&lt;p&gt;Checking the service&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sc query RabbitMQ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Result&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight properties"&gt;&lt;code&gt;&lt;span class="py"&gt;STATE&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;STOPPED&lt;/span&gt;

&lt;span class="py"&gt;WIN32_EXIT_CODE&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1067&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Meaning&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;RabbitMQ started and terminated unexpectedly.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  Problem 4
&lt;/h1&gt;

&lt;h2&gt;
  
  
  RabbitMQ Boot Failed
&lt;/h2&gt;

&lt;p&gt;Instead of using the Windows service, RabbitMQ was started manually.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmq-server.bat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;BOOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;FAILED&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="err"&gt;throw:&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;horus&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;extraction_denied&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Initially it appeared to be a configuration issue.&lt;/p&gt;




&lt;h1&gt;
  
  
  Problem 5
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Configuration File
&lt;/h2&gt;

&lt;p&gt;RabbitMQ loaded&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;advanced.config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The configuration file was renamed.&lt;/p&gt;

&lt;p&gt;RabbitMQ still failed.&lt;/p&gt;

&lt;p&gt;Therefore configuration wasn't the root cause.&lt;/p&gt;




&lt;h1&gt;
  
  
  Problem 6
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Windows Service Error
&lt;/h2&gt;

&lt;p&gt;Running&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;net start RabbitMQ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;returned&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;System error 2

The system cannot find the file specified.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This was confusing because the RabbitMQ service already existed.&lt;/p&gt;




&lt;h1&gt;
  
  
  Root Cause Investigation
&lt;/h1&gt;

&lt;p&gt;Instead of checking RabbitMQ logs repeatedly, the Windows service configuration was inspected.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sc qc RabbitMQ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight properties"&gt;&lt;code&gt;&lt;span class="err"&gt;BINARY_PATH_NAME&lt;/span&gt;

&lt;span class="py"&gt;C&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\P&lt;/span&gt;&lt;span class="s"&gt;rogram Files&lt;/span&gt;&lt;span class="se"&gt;\E&lt;/span&gt;&lt;span class="s"&gt;rlang OTP&lt;/span&gt;&lt;span class="se"&gt;\e&lt;/span&gt;&lt;span class="s"&gt;rts-17.0.4&lt;/span&gt;&lt;span class="se"&gt;\b&lt;/span&gt;&lt;span class="s"&gt;in&lt;/span&gt;&lt;span class="se"&gt;\e&lt;/span&gt;&lt;span class="s"&gt;rlsrv.exe&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, the installed Erlang version contained&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;erts-16.4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;RabbitMQ was still pointing to the old Erlang runtime.&lt;/p&gt;

&lt;p&gt;Windows therefore attempted to launch&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;erts-17.0.4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;which no longer existed.&lt;/p&gt;

&lt;p&gt;Hence&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;System error 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Solution
&lt;/h1&gt;

&lt;p&gt;Remove the existing RabbitMQ service.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmq-service.bat remove
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo %ERLANG_HOME%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install the service again.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmq-service.bat install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start RabbitMQ.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmq-service.bat start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify the service configuration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sc qc RabbitMQ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;RabbitMQ should now reference the current Erlang runtime.&lt;/p&gt;




&lt;h1&gt;
  
  
  Useful Commands
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Verify Erlang
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;erl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Verify Environment Variable
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo %ERLANG_HOME%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Check Erlang Path
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;where erl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  RabbitMQ Status
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmqctl status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  RabbitMQ Service Status
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sc query RabbitMQ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  RabbitMQ Service Configuration
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sc qc RabbitMQ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Start RabbitMQ
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;net start RabbitMQ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Stop RabbitMQ
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;net stop RabbitMQ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Restart RabbitMQ
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;net stop RabbitMQ

net start RabbitMQ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Start RabbitMQ in Foreground
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmq-server.bat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Enable Management Plugin
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmq-plugins enable rabbitmq_management
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  List Enabled Plugins
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmq-plugins list -E
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Lessons Learned
&lt;/h1&gt;

&lt;p&gt;There were several important takeaways from this debugging session.&lt;/p&gt;

&lt;h3&gt;
  
  
  Always verify Erlang first
&lt;/h3&gt;

&lt;p&gt;Before installing RabbitMQ, ensure&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;erl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;opens the Erlang shell.&lt;/p&gt;




&lt;h3&gt;
  
  
  Verify Environment Variables
&lt;/h3&gt;

&lt;p&gt;Incorrect&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ERLANG_HOME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or PATH configuration causes multiple RabbitMQ issues.&lt;/p&gt;




&lt;h3&gt;
  
  
  RabbitMQ Depends on Erlang Runtime
&lt;/h3&gt;

&lt;p&gt;Reinstalling Erlang changes the runtime directory.&lt;/p&gt;

&lt;p&gt;RabbitMQ Windows Service still references the previous runtime until the service is recreated.&lt;/p&gt;




&lt;h3&gt;
  
  
  Windows Service Errors Can Be Misleading
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;System error 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;did not mean RabbitMQ was missing.&lt;/p&gt;

&lt;p&gt;It meant the service executable path referenced a missing Erlang runtime.&lt;/p&gt;




&lt;h3&gt;
  
  
  Use rabbitmq-server.bat
&lt;/h3&gt;

&lt;p&gt;Instead of relying on Windows Service errors.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabbitmq-server.bat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;provides detailed startup diagnostics.&lt;/p&gt;




&lt;h3&gt;
  
  
  Always Verify Service Configuration
&lt;/h3&gt;

&lt;p&gt;The most useful command during this debugging session was&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sc qc RabbitMQ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It immediately exposed the incorrect Erlang runtime path.&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;RabbitMQ installation is usually straightforward, but Windows service configuration and Erlang compatibility can introduce subtle issues that are difficult to diagnose.&lt;/p&gt;

&lt;p&gt;The key takeaway from this experience is to troubleshoot methodically:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Verify Erlang.&lt;/li&gt;
&lt;li&gt;Verify environment variables.&lt;/li&gt;
&lt;li&gt;Check RabbitMQ startup.&lt;/li&gt;
&lt;li&gt;Inspect Windows service configuration.&lt;/li&gt;
&lt;li&gt;Recreate the RabbitMQ service after changing Erlang versions.&lt;/li&gt;
&lt;li&gt;Enable the management plugin only after the server starts successfully.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Following this process made it possible to move from repeated startup failures to a fully working RabbitMQ installation with the Management UI enabled.&lt;/p&gt;




&lt;p&gt;If this guide helped you save hours of debugging, consider sharing it with other developers who are setting up RabbitMQ on Windows. It might save them from the same troubleshooting journey.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>debugging</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>📬 Automate Email Attachments to Telegram with Python + Render.com</title>
      <dc:creator>Pavithran M</dc:creator>
      <pubDate>Sun, 10 Aug 2025 13:00:11 +0000</pubDate>
      <link>https://dev.to/pavithranp12/automate-email-attachments-to-telegram-with-python-rendercom-3p7j</link>
      <guid>https://dev.to/pavithranp12/automate-email-attachments-to-telegram-with-python-rendercom-3p7j</guid>
      <description>&lt;p&gt;Ever wished you could automatically forward email attachments to your Telegram chat or group? Whether it's invoices, reports, or alerts—this Python script does exactly that. And the best part? You can deploy it as a scheduled cron job on &lt;a href="https://render.com" rel="noopener noreferrer"&gt;Render.com&lt;/a&gt; with zero hassle.&lt;/p&gt;

&lt;p&gt;Let’s walk through the features, setup, and deployment steps to get this automation running in minutes.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What This App Does
&lt;/h2&gt;

&lt;p&gt;This Python application:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Connects securely to Yahoo Mail via IMAP
&lt;/li&gt;
&lt;li&gt;📂 Downloads the latest attachment from a specific folder (&lt;code&gt;B2b&lt;/code&gt;)
&lt;/li&gt;
&lt;li&gt;📤 Sends the attachment to a Telegram chat or group using the Telegram Bot API
&lt;/li&gt;
&lt;li&gt;🧾 Logs each step for easy debugging
&lt;/li&gt;
&lt;li&gt;🕒 Runs automatically on a schedule using Render.com’s cron job feature
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Perfect for automating workflows that rely on email-based file delivery.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Tech Stack
&lt;/h2&gt;

&lt;p&gt;Here’s what powers the app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python 3&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;imaplib&lt;/code&gt; – for accessing email via IMAP
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;email&lt;/code&gt; – for parsing MIME messages
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;requests&lt;/code&gt; – for sending files to Telegram
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dotenv&lt;/code&gt; – for managing environment variables locally
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📦 Getting Started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Clone the Repository
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/your-username/email-to-telegram.git
&lt;span class="nb"&gt;cd &lt;/span&gt;email-to-telegram
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Create a &lt;code&gt;.env&lt;/code&gt; File (for local testing)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="py"&gt;EMAIL_USER&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;your_yahoo_email@example.com&lt;/span&gt;
&lt;span class="py"&gt;EMAIL_PASS&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;your_yahoo_app_password&lt;/span&gt;
&lt;span class="py"&gt;TELEGRAM_TOKEN&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;your_telegram_bot_token&lt;/span&gt;
&lt;span class="py"&gt;TELEGRAM_CHAT_ID&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;your_chat_id_or_group_id&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;⚠️ Use a Yahoo &lt;strong&gt;App Password&lt;/strong&gt; instead of your regular password for IMAP access.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🧑‍💻 Local Testing
&lt;/h2&gt;

&lt;p&gt;Run the script manually to verify everything works:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python script.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see logs showing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connection to Yahoo Mail
&lt;/li&gt;
&lt;li&gt;Attachment download
&lt;/li&gt;
&lt;li&gt;Telegram API response
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ☁️ Deploying on Render.com
&lt;/h2&gt;

&lt;p&gt;Render makes it super easy to automate this with a cron job.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Create a New Cron Job
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;a href="https://dashboard.render.com/new/cron" rel="noopener noreferrer"&gt;Render Cron Jobs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Python&lt;/strong&gt; as the runtime
&lt;/li&gt;
&lt;li&gt;Set your schedule using cron syntax (e.g., &lt;code&gt;0 * * * *&lt;/code&gt; for hourly)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 2: Upload Your Code
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Upload your script (&lt;code&gt;script.py&lt;/code&gt;)
&lt;/li&gt;
&lt;li&gt;Include a &lt;code&gt;requirements.txt&lt;/code&gt; with:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  requests
  python-dotenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Set Environment Variables
&lt;/h3&gt;

&lt;p&gt;In the &lt;strong&gt;Environment&lt;/strong&gt; section of the cron job setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;EMAIL_USER&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;EMAIL_PASS&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;TELEGRAM_TOKEN&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;TELEGRAM_CHAT_ID&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;You don’t need the &lt;code&gt;.env&lt;/code&gt; file on Render—just set the variables directly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 4: Confirm and Deploy
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Save and deploy the cron job
&lt;/li&gt;
&lt;li&gt;Check logs after the first scheduled run to confirm success
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧪 Troubleshooting Tips
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No logs?&lt;/strong&gt; Add &lt;code&gt;print()&lt;/code&gt; statements to trace execution.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No attachment sent?&lt;/strong&gt; Double-check the folder name (&lt;code&gt;B2b&lt;/code&gt;) and email structure.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telegram error?&lt;/strong&gt; Make sure the bot isn’t blocked and has permission to send messages.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧾 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This setup is ideal for automating repetitive email-based workflows and keeping your Telegram feed updated with important files. You can easily extend it to support multiple folders, file types, or even filter by subject lines.&lt;/p&gt;

&lt;p&gt;If you found this helpful, drop a ❤️ or share your own automation ideas in the comments!&lt;/p&gt;




&lt;p&gt;Take a look at &lt;a href="https://pavithran.tech" rel="noopener noreferrer"&gt;me!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>automation</category>
      <category>python</category>
    </item>
    <item>
      <title>🎮 Turning My GitHub into a Game — My First Step Toward Showcasing My Skills!</title>
      <dc:creator>Pavithran M</dc:creator>
      <pubDate>Fri, 08 Aug 2025 17:28:12 +0000</pubDate>
      <link>https://dev.to/pavithranp12/turning-my-github-into-a-game-my-first-step-toward-showcasing-my-skills-400e</link>
      <guid>https://dev.to/pavithranp12/turning-my-github-into-a-game-my-first-step-toward-showcasing-my-skills-400e</guid>
      <description>&lt;p&gt;Hey everyone 👋,&lt;/p&gt;

&lt;p&gt;I've been working in the tech industry for almost 5 years, gaining hands-on experience in various technologies — particularly in .NET, SQL, application development, and database engineering.&lt;/p&gt;

&lt;p&gt;But until now, I never really showcased my work, projects, or progress publicly.&lt;br&gt;
Well... better late than never, right? 😄&lt;/p&gt;

&lt;p&gt;🚀 What Sparked the Change?&lt;br&gt;
Big shoutout to this amazing post by &lt;a class="mentioned-user" href="https://dev.to/vidakhoshpey22"&gt;@vidakhoshpey22&lt;/a&gt; &lt;br&gt;
It inspired me to transform my GitHub profile into a gamified contribution graph — featuring Pac-Man!&lt;/p&gt;

&lt;p&gt;This was a fun and rewarding project that not only added visual flair to my profile but also kickstarted my journey into consistently recording and sharing my professional milestones.&lt;/p&gt;

&lt;p&gt;🛠️ What I've Done So Far&lt;br&gt;
✅ Setup a Pac-Man-themed contribution graph on my GitHub&lt;br&gt;
✅ Created a dedicated Milestones repo to track all my achievements&lt;br&gt;
✅ Committed to logging everything I learn or build going forward&lt;/p&gt;

&lt;p&gt;🔗 Check out my GitHub: github.com/Pavithran-P12&lt;/p&gt;

&lt;p&gt;✨ What’s Next?&lt;br&gt;
This is just the beginning.&lt;br&gt;
I'll be documenting more tasks, sharing bite-sized accomplishments, and contributing to open-source wherever I can.&lt;/p&gt;

&lt;p&gt;If you're like me — experienced but haven't showcased much — this is your sign to start now. Share, track, and celebrate your journey 🎉&lt;/p&gt;

&lt;p&gt;Happy coding everyone!&lt;br&gt;
Happy developing! 💻🚀&lt;/p&gt;

</description>
      <category>github</category>
      <category>portfolio</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
