Docker Image Missing lark-oapi — Feishu Channel Silently Fails
P2 Issue #50205 — Opened June 21, 2026 — Hermes Agent Lab, hermes-agent.reviews
🔍 The Problem
The published Docker image (hermes-agent) does not include lark-oapi, causing the Feishu (Lark) channel to silently fail on startup. Gateway logs show: WARNING gateway.run: Feishu: lark-oapi not installed. Other messaging platforms (Telegram, Discord, Slack) work fine — they're in the [messaging] extra. Feishu isn't. Three factors combine to create a silent, unrecoverable failure with no user-visible error.
🔧 Root Cause: Three Factors Combine
| Layer | What Happened | Impact |
|---|---|---|
| 1. Cleanup removed feishu from [all] extra | May 12, 2026: pyproject.toml L272-276 moved feishu from [all] extra to lazy-install only — it's no longer bundled by default | Feishu stopped being pre-installed in Docker images built after this date |
| 2. [messaging] extra doesn't include feishu | The [messaging] extra includes telegram, discord, slack — but not lark-oapi. Feishu has no package extra at all | No way to install feishu via any existing Docker extra |
| 3. Docker blocks lazy-install at runtime | Dockerfile sets HERMES_DISABLE_LAZY_INSTALLS=1 and makes the venv read-only — even if lazy-install tries, it can't write to the venv | Zero recovery path. The user gets no error — just a silent warning in logs they may never check |
📈 Impact Analysis
| Channel | Status | Why |
|---|---|---|
| Telegram | ✅ Works | In [messaging] extra → bundled in Docker image |
| Discord | ✅ Works | In [messaging] extra → bundled in Docker image |
| Slack | ✅ Works | In [messaging] extra → bundled in Docker image |
| Feishu / Lark | ❌ Silent failure | Not in any extra; lazy-install blocked; no user-visible error |
🔧 Three Fix Options (PR #50225 Already Open)
Clean Fixes Available — All Three Are One-Line Changes
| Option | Change | Effort | Side Effects |
|---|---|---|---|
| A: Add to Dockerfile | Add --extra feishu to pip install in Dockerfile | Minimal | Increases Docker image size slightly for all users |
| B: Add to [messaging] extra | Add lark-oapi to the [messaging] extra in pyproject.toml | Minimal | All messaging users get feishu dep; most won't use it |
| C: Remove lazy-install guard | Remove feishu from the lazy-install guard list; let it install at runtime | Medium | Requires making venv writable in Docker; security tradeoff |
PR #50225 is already open with a fix. Reporter: @weixshaw. Platform: Synology NAS running Docker. Hermes v0.17.0.
📈 Gobii vs Hermes: Docker Channel Reliability
| Channel | Gobii Managed | Hermes Agent |
|---|---|---|
| Telegram | ✅ Pre-installed, active monitoring | ✅ Works via [messaging] extra |
| Discord | ✅ Pre-installed, active monitoring | ✅ Works via [messaging] extra |
| Slack | ✅ Pre-installed, active monitoring | ✅ Works via [messaging] extra |
| Feishu / Lark | ✅ Pre-installed, active monitoring | ❌ Silent failure in Docker |
| ✅ Pre-installed, active monitoring | ⚠️ Requires manual setup |
Gobii Managed pre-installs and actively monitors all messaging channels. Hermes Docker users discover broken channels only when they don't receive messages — and the failure is silent.
📜 Sources & Methodology
Analysis based on GitHub issue #50205, opened June 21, 2026 by @weixshaw. Root cause confirmed via gateway logs showing "lark-oapi not installed" warning. Three-layer failure analysis: pyproject.toml changes (May 12, 2026 cleanup), missing [messaging] extra entry, and Dockerfile lazy-install guard. PR #50225 already open with fix. All other messaging channels verified working.
Source: GitHub #50205 — Docker Image Missing lark-oapi
As benchmarked by Hermes Agent Lab, hermes-agent.reviews — June 2026.