openclaw - ✅(Solved) Fix [Bug]: openclaw doctor --fix does not migrate Feishu botName to name after upgrade to 2026.4.11 [1 pull requests, 1 comments, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#65177Fetched 2026-04-12 13:25:12
View on GitHub
Comments
1
Participants
1
Timeline
5
Reactions
0
Author
Participants
Timeline (top)
labeled ×2commented ×1cross-referenced ×1referenced ×1

After upgrading to OpenClaw 2026.4.11, Gateway startup fails on a legacy Feishu account config that still uses botName, and openclaw doctor --fix does not migrate it to name.

Error Message

Observed startup error: Config validation failed: channels.feishu.accounts.main: invalid config: must NOT have additional properties

Relevant config shape before manual fix: channels.feishu.defaultAccount = "main" channels.feishu.accounts.main.appId = "<redacted>" channels.feishu.accounts.main.appSecret = "${FEISHU_APP_SECRET}" channels.feishu.accounts.main.botName = "..."

Manual workaround: Rename channels.feishu.accounts.main.botName to channels.feishu.accounts.main.name

Verification after manual workaround: openclaw config validate => Config valid: ~.openclaw\openclaw.json

Root Cause

After upgrading to OpenClaw 2026.4.11, Gateway startup fails on a legacy Feishu account config that still uses botName, and openclaw doctor --fix does not migrate it to name.

Fix Action

Fix / Workaround

Manual workaround: Rename channels.feishu.accounts.main.botName to channels.feishu.accounts.main.name

Verification after manual workaround: openclaw config validate => Config valid: ~.openclaw\openclaw.json


Last known good: the same config existed before upgrading to 2026.4.11
First known bad: 2026.4.11
Workaround: manually rename channels.feishu.accounts.*.botName to name

PR fix notes

PR #65202: fix(feishu): add doctor migration for legacy botName → name rename

Description (problem / solution / changelog)

Summary

The Feishu account config schema was updated to use name instead of botName, but no doctor migration was added. Users upgrading to 2026.4.11 with an existing botName hit a fatal config validation error that blocks gateway startup:

Config validation failed: channels.feishu.accounts.main:
invalid config: must NOT have additional properties

openclaw doctor --fix does not repair it because no migration rule exists for the rename.

Fixes #65177

Fix

Add a defineLegacyConfigMigration in src/commands/doctor/shared/legacy-config-migrations.channels.ts that renames botNamename at both:

  • Channel level: channels.feishu.botNamechannels.feishu.name
  • Per-account level: channels.feishu.accounts.*.botNamechannels.feishu.accounts.*.name

If name already exists alongside botName, the migration preserves name and deletes the stale botName to avoid overwriting a deliberate user update.

Pattern

Follows the existing migration pattern used by:

  • thread-bindings.ttlHours → idleHours (same file, line 607)
  • channels.streaming-keys → channels.streaming (same file, line 660)
  • PR #63474 (fix(doctor): strip stale install/plugin keys from channel account configs) — same doctor migration family

Scope

  • Files: legacy-config-migrations.channels.ts (+73)
  • oxlint clean
  • Zero competing PRs — PR #63474 handles installs/plugins keys, not botName

cc @Takhoffman — Feishu channel ownership. Credit to @fireshort for the clear reproduction in #65177.

Changed files

  • src/commands/doctor/shared/legacy-config-migrations.channels.ts (modified, +73/-0)

Code Example

Observed startup error:
Config validation failed: channels.feishu.accounts.main: invalid config: must NOT have additional properties

Relevant config shape before manual fix:
channels.feishu.defaultAccount = "main"
channels.feishu.accounts.main.appId = "<redacted>"
channels.feishu.accounts.main.appSecret = "${FEISHU_APP_SECRET}"
channels.feishu.accounts.main.botName = "..."

Manual workaround:
Rename channels.feishu.accounts.main.botName to channels.feishu.accounts.main.name

Verification after manual workaround:
openclaw config validate
=> Config valid: ~\.openclaw\openclaw.json
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

After upgrading to OpenClaw 2026.4.11, Gateway startup fails on a legacy Feishu account config that still uses botName, and openclaw doctor --fix does not migrate it to name.

Steps to reproduce

  1. Keep an existing Feishu config under channels.feishu.accounts.main with appId, appSecret, and botName.
  2. Upgrade OpenClaw to 2026.4.11.
  3. Start Gateway or restart the OpenClaw Gateway scheduled task.
  4. Observe: Config validation failed: channels.feishu.accounts.main: invalid config: must NOT have additional properties
  5. Run openclaw doctor --fix.
  6. Start Gateway again and observe the same validation failure.

Expected behavior

The existing Feishu config should keep working after upgrade, or openclaw doctor --fix should migrate channels.feishu.accounts.*.botName to name so Gateway can start successfully.

Actual behavior

Gateway startup fails with: Config validation failed: channels.feishu.accounts.main: invalid config: must NOT have additional properties. openclaw doctor --fix does not repair the legacy botName field. Manually changing botName to name makes openclaw config validate pass.

OpenClaw version

2026.4.11

Operating system

Windows 10 Home China, build 22631

Install method

Global CLI via Scoop-managed Node.js (openclaw.ps1 under D:\Programs\scoop\apps\nodejs\current\bin)

Model

Not reached; Gateway fails during config validation before model execution.

Provider / routing chain

Not reached; Gateway fails during config validation before provider routing is exercised.

Additional provider/model setup details

Not applicable for this repro. The failure happens during Gateway config validation before any model or provider request path is used.

Logs, screenshots, and evidence

Observed startup error:
Config validation failed: channels.feishu.accounts.main: invalid config: must NOT have additional properties

Relevant config shape before manual fix:
channels.feishu.defaultAccount = "main"
channels.feishu.accounts.main.appId = "<redacted>"
channels.feishu.accounts.main.appSecret = "${FEISHU_APP_SECRET}"
channels.feishu.accounts.main.botName = "..."

Manual workaround:
Rename channels.feishu.accounts.main.botName to channels.feishu.accounts.main.name

Verification after manual workaround:
openclaw config validate
=> Config valid: ~\.openclaw\openclaw.json

Impact and severity

Affected users/systems/channels: Existing Feishu channel setups upgraded to 2026.4.11 that still use the legacy botName field Severity: High (blocks Gateway startup) Frequency: Always in the observed setup until the config is manually edited Consequence: Gateway cannot start successfully, and users must manually inspect and repair config instead of relying on doctor --fix

Additional information

Last known good: the same config existed before upgrading to 2026.4.11 First known bad: 2026.4.11 Workaround: manually rename channels.feishu.accounts.*.botName to name

The changelog already mentions: "Docs/Feishu: replace botName with name in the channel config examples so the docs match the strict account schema for per-account display names."

This looks like a migration gap: the docs/schema changed, but doctor --fix does not migrate the older field.

extent analysis

TL;DR

Manually rename botName to name in the Feishu account config to fix the Gateway startup failure after upgrading to OpenClaw 2026.4.11.

Guidance

  • Verify that the openclaw doctor --fix command does not automatically migrate the botName field to name in the Feishu account config.
  • Manually update the config by renaming channels.feishu.accounts.main.botName to channels.feishu.accounts.main.name.
  • Validate the config after the manual update using openclaw config validate to ensure it passes validation.
  • Consider reporting the issue to the OpenClaw team to request an update to the doctor --fix command to handle this migration automatically.

Example

No code snippet is necessary for this issue, as it involves a simple config rename.

Notes

This fix assumes that the only issue is the botName field not being migrated to name. If other config issues exist, additional changes may be necessary.

Recommendation

Apply the workaround by manually renaming botName to name in the Feishu account config, as this is a straightforward fix that resolves the Gateway startup failure.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

The existing Feishu config should keep working after upgrade, or openclaw doctor --fix should migrate channels.feishu.accounts.*.botName to name so Gateway can start successfully.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING