What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

If Hermes Agent reports “No Messaging Platforms Enabled”, first inspect the top-level platforms: section in the Hermes configuration. At least one adapter must have enabled: true; having a bot token or other credentials in .env is not enough. Then verify that Hermes is reading the file and environment variables you edited, restart the gateway, and check its startup log.

The exact wording has not been confirmed as an official, documented Hermes error string. It is best treated as a symptom: the gateway started with no messaging adapter available to run. The steps below use the documented configuration layout and distinguish confirmed behavior from troubleshooting advice that depends on your installation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What “No Messaging Platforms Enabled” means

Hermes messaging adapters are controlled from a top-level platforms: block in ~/.hermes/config.yaml. Each platform has its own enabled switch. If every configured adapter is disabled, missing, or loaded from a different file than the one you edited, the gateway has no messaging platform to start.

Credentials and enablement are separate settings. Values such as tokens and allow-lists are supplied through environment variables in a .env file, while dotted configuration settings belong in config.yaml. A valid token therefore cannot compensate for platforms.<name>.enabled: false, a misspelled platform name, or a configuration path that Hermes never reads.

#1 Best Overall
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
  • Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
  • Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit Low Noise Bearing System Fan
  • Mega Heat Sink - Black Anodized

Because no indexed source confirms the quoted sentence as an official message, do not assume it identifies one specific bug. Use the gateway’s startup output to determine whether the problem is an adapter flag, a missing secret, a profile mismatch, or a container path issue.

Before changing anything

  • Identify the Hermes home directory used by the process. A shell session, a service account, and a Docker container can each have a different home.
  • Back up config.yaml and .env before editing them.
  • Have the platform’s bot token or credentials ready, along with any required user or channel allow-list values.
  • Make one change at a time so the next startup log shows which change had an effect.

Step 1: Enable at least one messaging platform

Open the configuration file Hermes is expected to read, normally ~/.hermes/config.yaml. Confirm that the platform configuration is under platforms:, not under an unrelated top-level block copied from an older or third-party example.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
platforms:
  telegram:
    enabled: true
  discord:
    enabled: false

The names and additional keys must match the adapter documentation for your Hermes version. The important part is the structure: platforms at the top level and an explicit enabled: true for the adapter you intend to run. YAML indentation matters; use spaces rather than tabs.

Check for common YAML mistakes

  • Wrong nesting: enabled placed beside the platform instead of inside it will not enable that adapter.
  • String instead of Boolean: use true or false, not a quoted value such as "true", unless your version’s schema explicitly requires strings.
  • Duplicate keys: two platforms: sections can cause the later one to replace the earlier one.
  • Typographical names: telegram and discord must be spelled exactly as the installed adapters expect.
  • Editing the wrong file: a correct-looking change has no effect if the gateway uses another Hermes home or a container-mounted file.

Save the file, but do not assume the running gateway has reloaded it. Most gateway processes read configuration at startup.

Rank #2
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
  • Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
  • Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
  • CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount, CanaKit Low Noise Bearing System Fan
  • CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply (US Plug) with Noise Filter, Set of Heat Sinks, Display Cable - 6 foot (Supports up to 4K60p)
  • CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)

Step 2: Put credentials and allow-lists in the matching .env

Hermes configuration guidance separates environment variables from YAML settings. Uppercase snake-case names belong in .env; dotted settings belong in config.yaml. The two files must be in the same Hermes home directory from which the gateway loads its configuration.

# ~/.hermes/.env
TELEGRAM_ALLOWED_USERS=123456789
DISCORD_ALLOWED_USERS=123456789

The values above illustrate the documented allow-list variable style. Use the exact token variable and format required by the adapter documentation for your installed version; do not invent a variable name based on a guess. Keep secrets out of config.yaml when the adapter expects environment variables, and never commit .env to source control.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Make sure the process can read the file

  • Check the file name: it must be .env, including the leading dot.
  • Check ownership and permissions for the account that runs Hermes.
  • Do not put spaces around a variable name. Quote a value only when the documented format requires it.
  • Confirm that an allow-list contains the correct numeric user or channel identifiers. A running adapter can still ignore messages when the sender is not allowed.

If the platform is enabled but the token is absent or malformed, the startup log should move past the “no platforms” symptom and show an authentication or adapter-specific error instead. That change is useful: it proves Hermes is now attempting to start the adapter.

Step 3: Start Hermes with the profile that contains the messaging settings

Hermes profiles can hold separate configuration sets. If you enabled Telegram or Discord in one profile but start the gateway with another, the process will legitimately see no enabled messaging platforms. Select the profile that contains both the platforms block and its corresponding environment file.

Rank #3
ELECROW CrowPi Case Kit for Raspberry Pi 5, 9-Inch Display
  • Not including the Raspberry Pi 5 (8GB), the Crowpi advanced version comes with the Raspberry Pi 5
  • ELECROW Black Case for the Raspberry Pi 5, CrowPi is equipped with a 9-inch HD touchscreen along with a camera; All the regular components used in DIY electronics are packed into the CrowPi development board, such as LCD, LED matrix, buzzer, light sensor, PIR sensor, ultrasonic sensor, IR sensor, etc
  • Raspberry Pi Sensors: The Crowpi raspberry pi 5 programming kit is jam-packed with lots of buttons such as 19 different sensors in a tidy easy to use package; You don't have to wait and wire things
  • Build Quality: Solid ABS shell and well made components in one place make it strong and convenient to travel
  • Programming Lessons: This raspberry pi 5 learning kit ships with step by step instructions and provides 21 lessons to take you through identifying components reading code and running it in the terminal

Profile behavior is installation-dependent, so use the profile-selection syntax documented by your Hermes release. After starting, inspect the first lines of the gateway log for the active profile and configuration path. If those lines identify a different profile than the one you edited, stop the process and correct the launch command or service definition.

Step 4: Verify the configuration path, especially in Docker

Containerized installations commonly fail because the file exists on the host but not at the path read inside the container. A reported GitHub issue, #45792, describes a Docker setup that mounted ~/.hermes at /opt/data while the gateway could not find configured webhooks. Setting HERMES_CONFIG=/opt/data/config.yaml did not resolve that report, which indicates that the application was also misreading its state or home path. The issue is not confirmed to be the same cause as this message, but it is a strong reason to verify paths rather than trust a mount alone.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Docker checks

  1. Inspect the container’s mounts and confirm that the host directory containing config.yaml and .env is mounted where the process can read it.
  2. Open a shell in the running image and list the expected files at the in-container path. A host-side file does not prove that the container sees it.
  3. Check the container’s effective home directory and the user ID running Hermes.
  4. Read the startup log and note the configuration and state paths Hermes reports. Compare those paths with the mount destinations.
  5. If the log points somewhere else, change the container’s environment, working directory, or volume mapping according to the current Hermes deployment documentation, then recreate the container.

Do not rely on an environment variable such as HERMES_CONFIG without confirming that your build honors it and that related state files are located consistently. The GitHub report specifically found that changing that variable alone was insufficient.

Step 5: Restart the gateway and read the first startup lines

After changing YAML, environment variables, a profile, or a mount, restart the gateway so it reloads both files. Guides commonly show these commands:

Rank #4
CanaKit Raspberry Pi 5 Desktop PC with SSD (Fully Assembled) (256 GB SSD)
  • Fully assembled for plug-and-play operation
  • Includes Raspberry Pi 5 with 8GB RAM
  • 256 GB PCIe Pi NVMe SSD (Pre-loaded with Pi 64-Bit OS)
  • M.2 HAT+
  • CanaKit Turbine Black Case for the Pi 5
hermes gateway run
hermes gateway install
hermes gateway restart

The exact service commands can vary by Hermes release and installation method. Treat run as a foreground launch, install as a service-installation command, and restart as a service operation only when those subcommands exist in your version. If a command is rejected, consult the command help shipped with your installation rather than substituting an unrelated schema.

During startup, look for four facts:

  • the profile or environment selected;
  • the configuration and state paths loaded;
  • which platforms are enabled or skipped;
  • whether authentication, webhook registration, or polling succeeds.

Capture the first failure, not just the final shutdown message. For example, a missing token, invalid YAML, or permission denial is more actionable than a later generic “gateway stopped” line.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Telegram-specific failure: one gateway per bot token

Telegram permits a bot token to be used by only one polling gateway at a time. If the same token is active in another Hermes process, container, development shell, or host, Telegram can reject the second polling connection. Stop the other instance or give each gateway a different bot token before testing again.

This rule can appear after you successfully enable the platform: the original “no platforms” symptom disappears, but the Telegram adapter then fails to poll. That sequence means enablement is working and the remaining problem is a duplicate running instance, not the YAML switch.

Best Value
RasTech Raspberry Pi 5 8GB Kit with Active Cooler and Pi5 Case
  • 【What you Get】You will get 1*Pi 5 8GB Single Board,1*RasTech Case,1*Active Cooler,1*Screwdriver,1*Installation instructions,12-month free warranty, lifetime service, 24-hour prompt and friendly response.
  • 【More Connectors】There are two USB 3.0 ports(5Gbps simultaneously) and two USB 2.0 ports, which triple total bandwidth ,support any combination of up to two cameras or displays. Peak SD card performance is doubled through support for the SDR104 high-speed mode. It provides a smooth desktop experience for you. Offer Gigabit Ethernet and a PCIe interface, along with dual-band Wi-Fi and Bluetooth 5.0/BLE wireless capability. The RasTech Pi 5 Kit use the new 27W 5.1V 5A USB-C power connector.
  • 【 Support Dual 4Kp60 Display 】Each of the two microHDMI sockets can control a 4K display at 60 Hertz, now support HDR, offering super HD video for media streaming projects. RPi 5 is the first RPi model that comes with a PCI Express port (PCIe 2.0 x1 with 500 MB/s) to attach SSDs (requires separate M.2 HAT).
  • 【 Excellent Chips And Applications】Pi 5 is a full-size Pi computer using silicon built in-house at Pi. The RP1 “southbridge” provides the bulk of the I/O capabilities for Pi 5. Pi 5 is more friendly and convenient in the development of Internet of Things, Web development, machine identification, automatic control and other electronic equipment applications and network.
  • 【 Faster CPU, Better GPU 】 Pi 5 features a Broadcom BCM2712 64-bit quad-core Arm Cortex-A76 processor running at 2.4GHz, it delivers a 2–3× increase in CPU performance relative to RaspberryPi 4. The 800MHz VideoCore VII GPU is compatible to OpenGL ES 3.1 and Vulkan 1.2, substantial uplift in graphics performance. Pi 5 Offers lightning-fast CPU speed, a PCI Express interface, a Real Time Clock (RTC) and a power button and runs significantly cooler than Pi 4.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Diagnostic decision table

What you observe Most likely explanation Next action
The log lists no enabled adapters No platform has enabled: true, or Hermes loaded another file Check the top-level platforms: block and the logged config path
An adapter is listed as enabled but authentication fails The .env file is missing, unreadable, or uses the wrong variable name/value Verify the exact environment variable, permissions, and active Hermes home
Changes work in a shell but not as a service The service uses another user, profile, home directory, or environment Compare the service definition with the interactive launch and inspect its startup log
Docker sees an empty configuration The volume is mounted at a path Hermes does not read, or state and config paths disagree Inspect in-container paths and correct the mount or process environment
Telegram reports polling or conflict errors The bot token is already in use by another gateway Stop the other process or use a separate token
A restart restores the old behavior The edit was made to a file that is regenerated, copied, or outside the active profile Locate the file loaded at startup and update the source used to create it

Configuration examples that avoid the usual traps

Single-platform local setup

# ~/.hermes/config.yaml
platforms:
  telegram:
    enabled: true
# ~/.hermes/.env
TELEGRAM_ALLOWED_USERS=123456789

This example intentionally shows only the enablement and allow-list shape. Add the adapter’s required credential variable exactly as documented for your version. Do not copy a token into an example file that may later be shared.

Two platforms with one disabled

platforms:
  telegram:
    enabled: true
  discord:
    enabled: false

Hermes should attempt only the enabled adapter. If you want both services, change the second value to true and provide its required environment variables. If neither is enabled, the gateway has no messaging service to start even when both .env entries exist.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Final verification checklist

  1. Open the exact config.yaml path named in the gateway startup log.
  2. Confirm a top-level platforms: block exists.
  3. Confirm at least one platform has a Boolean enabled: true.
  4. Confirm the matching .env is in the active Hermes home and readable by the gateway account.
  5. Confirm allow-list values and credentials use the adapter’s documented variable names.
  6. If profiles are enabled, launch the profile containing these settings.
  7. If Docker is involved, verify the files from inside the container and compare mount paths with the logged paths.
  8. Restart the gateway and read the first adapter and authentication messages.
  9. For Telegram, make sure no second gateway is using the same bot token.

When the startup log names an enabled adapter, loads the intended files, and completes that adapter’s authentication or webhook/polling setup, the “no messaging platforms” condition has been resolved. Any remaining error should then be handled as a platform-specific credential, network, permission, or allow-list problem.

Quick Recap

Bestseller No. 1
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM); CanaKit Turbine Black Case for the Raspberry Pi 5
$259.95
Bestseller No. 2
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM); Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
$159.99
Bestseller No. 4
CanaKit Raspberry Pi 5 Desktop PC with SSD (Fully Assembled) (256 GB SSD)
CanaKit Raspberry Pi 5 Desktop PC with SSD (Fully Assembled) (256 GB SSD)
Fully assembled for plug-and-play operation; Includes Raspberry Pi 5 with 8GB RAM; 256 GB PCIe Pi NVMe SSD (Pre-loaded with Pi 64-Bit OS)
$339.97

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.