What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
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
Antihost offers VPS plans with one-click Hermes Agent, NVMe storage and a 14-day free trial.
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.
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
- 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.yamland.envbefore 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.
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:
enabledplaced beside the platform instead of inside it will not enable that adapter. - String instead of Boolean: use
trueorfalse, 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:
telegramanddiscordmust 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
- 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.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsMake 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
- 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.
Docker checks
- Inspect the container’s mounts and confirm that the host directory containing
config.yamland.envis mounted where the process can read it. - 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.
- Check the container’s effective home directory and the user ID running Hermes.
- Read the startup log and note the configuration and state paths Hermes reports. Compare those paths with the mount destinations.
- 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
- 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.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →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
- 【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.
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.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Final verification checklist
- Open the exact
config.yamlpath named in the gateway startup log. - Confirm a top-level
platforms:block exists. - Confirm at least one platform has a Boolean
enabled: true. - Confirm the matching
.envis in the active Hermes home and readable by the gateway account. - Confirm allow-list values and credentials use the adapter’s documented variable names.
- If profiles are enabled, launch the profile containing these settings.
- If Docker is involved, verify the files from inside the container and compare mount paths with the logged paths.
- Restart the gateway and read the first adapter and authentication messages.
- 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
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.

