openclaw - ✅(Solved) Fix Bug: Feishu channel blockStreaming config not in schema — cannot be enabled [1 pull requests, 1 comments, 2 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#75555Fetched 2026-05-02 05:33:14
View on GitHub
Comments
1
Participants
2
Timeline
9
Reactions
2
Timeline (top)
referenced ×3mentioned ×2subscribed ×2commented ×1

Error Message

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

Fix Action

Fix / Workaround

  1. config.patch rejects the path with: channels.feishu: invalid config: must NOT have additional properties
  2. config.apply (via openclaw config set) also rejects it
  3. The field is effectively impossible to enable for Feishu — contradicting the documentation

PR fix notes

PR #75573: fix(feishu): add blockStreaming to channel config schema (#75555)

Description (problem / solution / changelog)

Fixes #75555.

Problem

channels.feishu.blockStreaming is documented in two places:

  • docs/channels/feishu.md (lines 276 and 431, both treat it as a boolean toggle)
  • docs/gateway/config-agents.md line 670: "Non-Telegram channels require explicit *.blockStreaming: true to enable block replies."

The shared resolver resolveChannelStreamingBlockEnabled() in src/plugin-sdk/channel-streaming.ts already consumes entry.blockStreaming for any channel. But the Feishu plugin schema (extensions/feishu/src/config-schema.ts) never declared the property as a permitted strict-object key, so:

  • openclaw config set channels.feishu.blockStreaming true → rejected: must NOT have additional properties
  • config.patch and config.apply reject the same path

Effectively, the documented Feishu block-streaming switch is unreachable.

Fix

Add blockStreaming: z.boolean().optional() to FeishuSharedConfigShape. Because that shape is spread into both FeishuConfigSchema (top-level) and FeishuAccountConfigSchema (per-account), the field is now valid in both places, matching blockStreamingCoalesce already next to it.

No runtime code changes needed — the resolver already reads the field.

Tests

Three new cases in config-schema.test.ts:

  • Top-level blockStreaming: true parses cleanly and round-trips.
  • Per-account blockStreaming: false parses cleanly.
  • Non-boolean values are still rejected.

Risk

Trivial. Schema-only additive change. No behaviour change for users who are not setting the field.

Changed files

  • CHANGELOG.md (modified, +2/-0)
  • extensions/feishu/src/config-schema.test.ts (modified, +33/-0)
  • extensions/feishu/src/config-schema.ts (modified, +6/-0)
  • src/config/bundled-channel-config-metadata.generated.ts (modified, +6/-0)

Code Example

"channels": {
  "feishu": {
    "blockStreaming": true
  }
}

---

Error: Config validation failed: channels.feishu: invalid config: must NOT have additional properties
RAW_BUFFERClick to expand / collapse

Bug Report: Feishu channel blockStreaming config not in schema — cannot be enabled

Bug Description

The official documentation (docs/channels/feishu.md and docs/gateway/config-agents.md) states that for non-Telegram channels, block streaming must be explicitly enabled via:

"channels": {
  "feishu": {
    "blockStreaming": true
  }
}

However, the Feishu plugin's config schema does not declare blockStreaming as a valid property under channels.feishu. This causes:

  1. config.patch rejects the path with: channels.feishu: invalid config: must NOT have additional properties
  2. config.apply (via openclaw config set) also rejects it
  3. The field is effectively impossible to enable for Feishu — contradicting the documentation

Steps to Reproduce

  1. Attempt: openclaw config set channels.feishu.blockStreaming true
  2. Result:
    Error: Config validation failed: channels.feishu: invalid config: must NOT have additional properties

Expected Behavior

According to the docs, setting channels.feishu.blockStreaming: true should enable block-level streaming for the Feishu channel, making the bot output text in chunks (typewriter style) as it generates, rather than waiting for the full response.

Environment

  • OpenClaw version: 2026.4.29
  • Feishu plugin: bundled with OpenClaw
  • Node.js: v25.9.0
  • OS: macOS Darwin 24.5.0 (arm64)

Additional Context

  • agents.defaults.blockStreamingDefault: "on" is already set globally
  • agents.defaults.blockStreamingBreak: "text_end" is already set
  • The blockStreamingChunk and blockStreamingCoalesce configs are also in place
  • Without channels.feishu.blockStreaming: true, Feishu does NOT emit block replies even though all the global defaults are correct
  • This was confirmed by examining dist/extensions/feishu/openclaw.plugin.json — the channels.feishu schema properties list does not include blockStreaming

Suggested Fix

Add blockStreaming to the Feishu plugin's config schema at: dist/extensions/feishu/openclaw.plugin.jsonchannels.feishu properties

The property should accept a boolean value (true/false).


Tags: feishu, block-streaming, config-schema, bug

extent analysis

TL;DR

Add blockStreaming to the Feishu plugin's config schema to enable block-level streaming for the Feishu channel.

Guidance

  • Verify the Feishu plugin's config schema at dist/extensions/feishu/openclaw.plugin.json to confirm that blockStreaming is not included.
  • Update the channels.feishu properties in the schema to include blockStreaming as a boolean property.
  • After updating the schema, attempt to enable block streaming using openclaw config set channels.feishu.blockStreaming true to verify the fix.
  • If the issue persists, check the global defaults (agents.defaults.blockStreamingDefault and agents.defaults.blockStreamingBreak) to ensure they are correctly set.

Example

{
  "channels": {
    "feishu": {
      "blockStreaming": true
    }
  }
}

Notes

This fix assumes that the issue is solely due to the missing blockStreaming property in the Feishu plugin's config schema. If other issues are present, additional debugging may be required.

Recommendation

Apply the suggested fix by updating the Feishu plugin's config schema to include the blockStreaming property, as this directly addresses the reported issue and aligns with the expected behavior described in the documentation.

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…

Still need to ship something?

×6

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

Back to top recommendations

TRENDING