openclaw - 💡(How to fix) Fix [Bug]: Zod RangeError: Maximum call stack size exceeded — Multiple plugins fail to load on Node 24 [2 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#62133Fetched 2026-04-08 03:08:34
View on GitHub
Comments
2
Participants
1
Timeline
5
Reactions
1
Author
Participants
Timeline (top)
commented ×2labeled ×2closed ×1

Error Message

Here's your current provider/routing chain: --- ## � Chain: How a Message Gets Processed You send message ↓ [Gateway:18789] — receives message ↓ [Session: hemibot/main] — session context assembled ↓ [LCM: lossless-claw] — checks context (50% threshold) ↓ [Primary Model: minimax-portal/MiniMax-M2.7] ↓ on failure ↓ [Fallback 1: openai/gpt-5.4-nano] ↓ on failure ↓ [Fallback 2: anthropic/claude-haiku-4-5] ↓ on failure ↓ [Error / No Response] --- ## 📋 Your Full Config | Priority | Provider | Model | Purpose | |---|---|---|---| | Primary | minimax-portal | MiniMax-M2.7 | All conversations (200k context window) | | Fallback 1 | openai | GPT-5.4-nano | Fast, cheap, compact fallback | | Fallback 2 | anthropic | Claude Haiku 4.5 | Reasoning-capable fallback | | MetaClaw | minimax-portal | MiniMax-M2.7 (RL) | Self-improvement / skill evolution | | Summary | minimax-portal | MiniMax-M2.7 | Lossless-claw compaction | --- ## 🔀 Cross-Plugin Routing The Telegram bindings route to specific bots: telegram/default → hemibot → minimax-portal/MiniMax-M2.7 telegram/dave → davebot → (uses hemibot primary) telegram/moni_1a_bot → monibot → (uses hemibot primary) ## 🔗 Plugin Stack | Plugin | Role | |---|---| | lossless-claw | DAG context compaction @ 50% | | metaclaw-openclaw | RL training + skill evolution | | browser | Web scraping / screenshot | | telegram | Messaging (3 bot accounts) | | acpx | ACP protocol handler | | anthropic / openai / minimax | LLM providers | The chain is clean — MiniMax primary, Nano → Haiku fallbacks, MetaClaw handles self-improvement on the side. 🚀 [Error / No Response]" aria-label="Copy code" style="box-sizing: border-box; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 11px; line-height: inherit; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; color: rgb(110, 110, 115); appearance: none; cursor: pointer; border-radius: 6px; background: 0px 0px; border: none; padding: 2px 6px; transition: color 0.15s, background 0.15s;"><span class="code-block-copy__idle" style="box-sizing: border-box;">Copy</span></button></div><pre style="box-sizing: border-box; border-radius: 0px 0px 6px 6px; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(236, 238, 240); padding: 10px 12px; overflow: auto; margin: 0px; border: 1px solid rgba(0, 0, 0, 0.1);"><code style="box-sizing: border-box; font-family: &quot;JetBrains Mono&quot;, ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Monaco, Consolas, monospace; background: 0px 0px; border-radius: 6px; padding: 0px; font-size: 12px; white-space: pre;">You send message [Error / No Response]</code></pre></div><hr style="box-sizing: border-box; border-width: 0.666667px 0px 0px; border-right-style: initial; border-bottom-style: initial; border-left-style: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: initial; border-image: initial; border-top-style: solid; border-top-color: rgb(229, 229, 234); margin: 1em 0px; font-family: Inter, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.14px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(248, 249, 250); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><h2 style="box-sizing: border-box; color: rgb(60, 60, 67); font-family: Inter, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: -0.14px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(248, 249, 250); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">📋 Your Full Config</h2>

RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Environment

  • OpenClaw: 2026.4.5 (3e72c03)
  • Node.js: v24.14.1
  • OS: Windows 10/11 (x64)

Problem

Multiple plugins fail to load at gateway startup with:

Steps to reproduce

Affected plugins:

  • minimax/index.js
  • amazon-bedrock/index.js
  • amazon-bedrock-mantle/index.js
  • google/index.js
  • kilocode/index.js
  • moonshot/index.js
  • comfy/index.js

Stack trace shows recursion in zod/index.cjs during JSON Schema/AJV validation compilation.

Impact

  • Gateway stays up via fallback mechanisms ✅
  • CLI commands (openclaw ask, openclaw status --deep, openclaw skills list, openclaw security audit --deep) crash with SIGKILL when they try to load affected plugins
  • These plugins are non-functional

Reproduction

  1. Install OpenClaw 2026.4.5 on Node 24.14.1
  2. Start gateway — logs show affected plugins failing to load with stack overflow
  3. Run any CLI command that triggers plugin scan → SIGKILL crash

Logs

Expected behavior

Expected

All plugins load without stack overflow on Node 24.

Additional Context

Node 24 has deeper call stacks than previous versions. AJV/Zod schema compilation can trigger deep recursion that hits the default stack limit. Same code works on Node 18/20.

Actual behavior

Expected

All plugins load without stack overflow on Node 24.

Additional Context

Node 24 has deeper call stacks than previous versions. AJV/Zod schema compilation can trigger deep recursion that hits the default stack limit. Same code works on Node 18/20.

OpenClaw version

Version v2026.4.5

Operating system

windows 11

Install method

npn

Model

minimax 2.7

Provider / routing chain

Here's your current provider/routing chain: --- ## � Chain: How a Message Gets Processed You send message ↓ [Gateway:18789] — receives message ↓ [Session: hemibot/main] — session context assembled ↓ [LCM: lossless-claw] — checks context (50% threshold) ↓ [Primary Model: minimax-portal/MiniMax-M2.7] ↓ on failure ↓ [Fallback 1: openai/gpt-5.4-nano] ↓ on failure ↓ [Fallback 2: anthropic/claude-haiku-4-5] ↓ on failure ↓ [Error / No Response] --- ## 📋 Your Full Config | Priority | Provider | Model | Purpose | |---|---|---|---| | Primary | minimax-portal | MiniMax-M2.7 | All conversations (200k context window) | | Fallback 1 | openai | GPT-5.4-nano | Fast, cheap, compact fallback | | Fallback 2 | anthropic | Claude Haiku 4.5 | Reasoning-capable fallback | | MetaClaw | minimax-portal | MiniMax-M2.7 (RL) | Self-improvement / skill evolution | | Summary | minimax-portal | MiniMax-M2.7 | Lossless-claw compaction | --- ## 🔀 Cross-Plugin Routing The Telegram bindings route to specific bots: telegram/default → hemibot → minimax-portal/MiniMax-M2.7 telegram/dave → davebot → (uses hemibot primary) telegram/moni_1a_bot → monibot → (uses hemibot primary) ## 🔗 Plugin Stack | Plugin | Role | |---|---| | lossless-claw | DAG context compaction @ 50% | | metaclaw-openclaw | RL training + skill evolution | | browser | Web scraping / screenshot | | telegram | Messaging (3 bot accounts) | | acpx | ACP protocol handler | | anthropic / openai / minimax | LLM providers | The chain is clean — MiniMax primary, Nano → Haiku fallbacks, MetaClaw handles self-improvement on the side. 🚀

Additional provider/model setup details

<html> <body> <!--StartFragment--><p style="box-sizing: border-box; margin: 0px; color: rgb(60, 60, 67); font-family: Inter, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.14px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(248, 249, 250); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">Here's your current provider/routing chain:</p><hr style="box-sizing: border-box; border-width: 0.666667px 0px 0px; border-right-style: initial; border-bottom-style: initial; border-left-style: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: initial; border-image: initial; border-top-style: solid; border-top-color: rgb(229, 229, 234); margin: 1em 0px; font-family: Inter, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.14px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(248, 249, 250); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><h2 style="box-sizing: border-box; color: rgb(60, 60, 67); font-family: Inter, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: -0.14px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(248, 249, 250); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">� Chain: How a Message Gets Processed</h2><div class="code-block-wrapper" style="box-sizing: border-box; border-radius: 6px; margin-top: 0.75em; position: relative; overflow: hidden; color: rgb(60, 60, 67); font-family: Inter, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.14px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(248, 249, 250); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><div class="code-block-header" style="box-sizing: border-box; background: rgba(0, 0, 0, 0.08); justify-content: space-between; align-items: center; gap: 8px; padding: 4px 8px 4px 12px; font-size: 12px; line-height: 1; display: flex;"><button type="button" class="code-block-copy" data-code="You send message ↓ [Gateway:18789] — receives message ↓ [Session: hemibot/main] — session context assembled ↓ [LCM: lossless-claw] — checks context (50% threshold) ↓ [Primary Model: minimax-portal/MiniMax-M2.7] ↓ on failure ↓ [Fallback 1: openai/gpt-5.4-nano] ↓ on failure ↓ [Fallback 2: anthropic/claude-haiku-4-5] ↓ on failure ↓ [Error / No Response]" aria-label="Copy code" style="box-sizing: border-box; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 11px; line-height: inherit; font-family: Inter, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; color: rgb(110, 110, 115); appearance: none; cursor: pointer; border-radius: 6px; background: 0px 0px; border: none; padding: 2px 6px; transition: color 0.15s, background 0.15s;"><span class="code-block-copy__idle" style="box-sizing: border-box;">Copy</span></button></div><pre style="box-sizing: border-box; border-radius: 0px 0px 6px 6px; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(236, 238, 240); padding: 10px 12px; overflow: auto; margin: 0px; border: 1px solid rgba(0, 0, 0, 0.1);"><code style="box-sizing: border-box; font-family: &quot;JetBrains Mono&quot;, ui-monospace, SFMono-Regular, &quot;SF Mono&quot;, Menlo, Monaco, Consolas, monospace; background: 0px 0px; border-radius: 6px; padding: 0px; font-size: 12px; white-space: pre;">You send message ↓ [Gateway:18789] — receives message ↓ [Session: hemibot/main] — session context assembled ↓ [LCM: lossless-claw] — checks context (50% threshold) ↓ [Primary Model: minimax-portal/MiniMax-M2.7] ↓ on failure ↓ [Fallback 1: openai/gpt-5.4-nano] ↓ on failure ↓ [Fallback 2: anthropic/claude-haiku-4-5] ↓ on failure ↓ [Error / No Response]</code></pre></div><hr style="box-sizing: border-box; border-width: 0.666667px 0px 0px; border-right-style: initial; border-bottom-style: initial; border-left-style: initial; border-right-color: initial; border-bottom-color: initial; border-left-color: initial; border-image: initial; border-top-style: solid; border-top-color: rgb(229, 229, 234); margin: 1em 0px; font-family: Inter, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.14px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(248, 249, 250); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><h2 style="box-sizing: border-box; color: rgb(60, 60, 67); font-family: Inter, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: -0.14px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(248, 249, 250); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">📋 Your Full Config</h2> Priority | Provider | Model | Purpose -- | -- | -- | -- Primary | minimax-portal | MiniMax-M2.7 | All conversations (200k context window) Fallback 1 | openai | GPT-5.4-nano | Fast, cheap, compact fallback Fallback 2 | anthropic | Claude Haiku 4.5 | Reasoning-capable fallback MetaClaw | minimax-portal | MiniMax-M2.7 (RL) | Self-improvement / skill evolution Summary | minimax-portal | MiniMax-M2.7 | Lossless-claw compaction <p style="box-sizing: border-box; margin: 0px; color: rgb(60, 60, 67); font-family: Inter, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.14px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(248, 249, 250); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">The chain is clean — MiniMax primary, Nano → Haiku fallbacks, MetaClaw handles self-improvement on the side. 🚀</p><!--EndFragment--> </body> </html>

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

No response

extent analysis

TL;DR

Increase the stack size limit in Node.js to prevent recursion errors when loading plugins.

Guidance

  • Identify the affected plugins and verify that the issue is indeed related to the stack size limit.
  • Increase the stack size limit by running Node.js with the --stack-size flag, for example: node --stack-size=1024 index.js.
  • Consider updating the package.json file to include the --stack-size flag in the start script.
  • Test the application with the increased stack size limit to verify that the issue is resolved.

Example

To increase the stack size limit, you can run the following command:

node --stack-size=1024 index.js

Alternatively, you can update the package.json file to include the --stack-size flag:

"scripts": {
  "start": "node --stack-size=1024 index.js"
}

Notes

  • Increasing the stack size limit may not be suitable for production environments, as it can lead to increased memory usage.
  • It is recommended to investigate the root cause of the recursion error and optimize the code to prevent it from occurring in the first place.

Recommendation

Apply a workaround by increasing the stack size limit, as it is a temporary solution to prevent the recursion error. However, it is recommended to investigate and fix the root cause of the issue to prevent it from occurring in the future.

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