openclaw - 💡(How to fix) Fix [v29] Google secrets reloader crash-loop: Unable to open bundled plugin public surface google/web-search-contract-api.js [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#75797Fetched 2026-05-02 05:29:57
View on GitHub
Comments
1
Participants
2
Timeline
2
Reactions
2
Author
Timeline (top)
commented ×1cross-referenced ×1

After upgrading from OpenClaw 2026.4.26 to 2026.4.29, the gateway successfully started once, then after a later SIGTERM it entered a cold-start crash loop. Every subsequent startup failed with a Google plugin / secrets-reloader error:

[secrets] [SECRETS_RELOADER_DEGRADED] Error: Unable to open bundled plugin public surface google/web-search-contract-api.js
Gateway failed to start: Error: Startup failed: required secrets are unavailable. Error: Unable to open bundled plugin public surface google/web-search-contract-api.js

Rolling back to 2026.4.26 restored service.

This looks related to, but more specific than, provider-secret startup failures such as #46531 and v29 gateway lifecycle instability such as #75398.

Error Message

[secrets] [SECRETS_RELOADER_DEGRADED] Error: Unable to open bundled plugin public surface google/web-search-contract-api.js Gateway failed to start: Error: Startup failed: required secrets are unavailable. Error: Unable to open bundled plugin public surface google/web-search-contract-api.js

Root Cause

After openclaw plugins uninstall google, the next startup auto-enabled Google again because configured Gemini models were present, then the same secrets-reloader path failed.

Code Example

[secrets] [SECRETS_RELOADER_DEGRADED] Error: Unable to open bundled plugin public surface google/web-search-contract-api.js
Gateway failed to start: Error: Startup failed: required secrets are unavailable. Error: Unable to open bundled plugin public surface google/web-search-contract-api.js

---

/opt/homebrew/lib/node_modules/openclaw/dist/extensions/google/web-search-contract-api.js

---

"error": { "name": "Error" },
"snapshot": { "events": [] }
RAW_BUFFERClick to expand / collapse

Summary

After upgrading from OpenClaw 2026.4.26 to 2026.4.29, the gateway successfully started once, then after a later SIGTERM it entered a cold-start crash loop. Every subsequent startup failed with a Google plugin / secrets-reloader error:

[secrets] [SECRETS_RELOADER_DEGRADED] Error: Unable to open bundled plugin public surface google/web-search-contract-api.js
Gateway failed to start: Error: Startup failed: required secrets are unavailable. Error: Unable to open bundled plugin public surface google/web-search-contract-api.js

Rolling back to 2026.4.26 restored service.

This looks related to, but more specific than, provider-secret startup failures such as #46531 and v29 gateway lifecycle instability such as #75398.

Environment

  • OpenClaw upgraded version: 2026.4.29 (a448042)
  • Previous / rollback version: 2026.4.26 (be8c246)
  • OS: macOS, Apple Silicon (arm64)
  • Install method: global npm install under Homebrew prefix (/opt/homebrew/lib/node_modules/openclaw/)
  • Node tested:
    • Homebrew Node 25.9.0 — reproduced
    • Homebrew Node 22.22.2 LTS — reproduced
  • Gateway mode: LaunchAgent, loopback bind, port 18789
  • Active plugins during working rollback state include: active-memory, browser, memory-core, voice-call, whatsapp
  • Configured providers include:
    • openai-codex as primary
    • google/gemini-* as fallback and for voice realtime/response paths

Relevant config context

This setup intentionally uses Google/Gemini through supported OpenClaw configuration surfaces:

  • default model fallback: google/gemini-3.1-pro-preview
  • voice-call realtime provider: google
  • voice-call realtime model: gemini-2.5-flash-native-audio-preview-12-2025
  • voice-call response model: google/gemini-3.1-flash-lite-preview
  • GEMINI_API_KEY exists in ~/.openclaw/.env

This is not intended as a claim that the config is invalid or self-inflicted. The point is that a valid Google/Gemini-enabled setup appears to exercise a v29 startup path where the Google contract/secrets reloader can become fatal to the entire gateway. OpenClaw should either start successfully with this supported config, degrade the affected Google capability only, or report the real underlying validation/import error.

No credentials are included here; the key was present and usable enough for the rollback version to run.

What happened

  1. Upgrade from 2026.4.26 to 2026.4.29.
  2. Gateway started successfully once and handled at least one request.
  3. Gateway later received SIGTERM.
  4. Every cold start after that failed with the secrets-reloader error above.
  5. LaunchAgent restarted repeatedly, producing a crash loop.
  6. Rollback to 2026.4.26 restored service.

Things ruled out

The reported file is not missing and can be imported

The file exists:

/opt/homebrew/lib/node_modules/openclaw/dist/extensions/google/web-search-contract-api.js

It is readable and imports cleanly with Node outside OpenClaw. The module exports the expected createGeminiWebSearchProvider symbol.

So the message Unable to open bundled plugin public surface google/web-search-contract-api.js appears to be misleading or wrapping another underlying failure.

Not a corrupt install

A clean global reinstall reproduced the same startup failure.

Not Node 25-specific

The failure reproduced with Node 22.22.2 LTS as well.

Not just missing shell env

GEMINI_API_KEY was in ~/.openclaw/.env, and an explicit Google webSearch API key was also tried in config during debugging. The same startup failure remained.

Disabling/uninstalling Google did not isolate the failure

openclaw plugins disable google only flipped plugins.entries.google.enabled=false; the secrets reloader still attempted to load the Google contract.

After openclaw plugins uninstall google, the next startup auto-enabled Google again because configured Gemini models were present, then the same secrets-reloader path failed.

Additional diagnostics problem

The generated stability bundles for gateway.startup_failed were not useful. They contained only:

"error": { "name": "Error" },
"snapshot": { "events": [] }

No message, no stack, no useful event context, despite the gateway logs containing the secrets-reloader error.

Expected behavior

  • A secondary provider/plugin contract load failure should not brick the whole gateway when the primary model/provider is valid.
  • If Google/Gemini config is invalid, the startup error should identify the actual missing/invalid secret or underlying import/validation error.
  • plugins disable google should prevent Google plugin/contract/secrets-reloader loading, or the CLI should clearly state that configured Gemini models will still force it into the startup path.
  • plugins uninstall google should not be silently undone by auto-enable without a clear warning/override mechanism.
  • Stability bundles for gateway.startup_failed should include the real message/stack and useful event context.

Actual behavior

  • Gateway cold-start failed completely.
  • Error pointed at opening google/web-search-contract-api.js even though the file exists and imports correctly.
  • Google plugin disable/uninstall did not provide a path to recover while retaining configured Gemini references.
  • Stability bundles were effectively empty.
  • Rollback to 2026.4.26 was required to restore service.

Related issues

  • #75398 — v29 gateway lifecycle instability / CLI commands triggering restarts
  • #46531 — provider secret/config issue causing gateway crash loop

This report may be a more specific v29 regression in the Google plugin secrets-reloader/contract-loading path.

extent analysis

TL;DR

The most likely fix is to investigate and resolve the underlying issue with the Google plugin secrets-reloader, as the error message about google/web-search-contract-api.js seems to be misleading.

Guidance

  1. Verify plugin configuration: Double-check the Google plugin configuration, especially the GEMINI_API_KEY environment variable, to ensure it is correctly set and accessible.
  2. Check for dependency issues: Investigate potential dependency conflicts or version mismatches that might be causing the secrets-reloader to fail.
  3. Test with a minimal configuration: Try starting the gateway with a minimal configuration, disabling all plugins except the Google plugin, to isolate the issue.
  4. Enable debug logging: Increase the log level to debug to gather more information about the error and the secrets-reloader process.
  5. Compare with the previous version: Investigate the changes made in the 2026.4.29 version that might be causing this regression, compared to the previous 2026.4.26 version.

Example

No specific code snippet can be provided without more information about the underlying issue, but checking the plugin configuration and dependencies can be done using the OpenClaw CLI commands, such as openclaw plugins list and openclaw config get.

Notes

The issue seems to be related to the Google plugin secrets-reloader, but the error message is misleading, and the actual cause is still unknown. Further investigation is required to determine the root cause and find a solution.

Recommendation

Apply a workaround by rolling back to the previous version 2026.4.26 until the issue is resolved, as it has been confirmed to work with the same configuration.

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

  • A secondary provider/plugin contract load failure should not brick the whole gateway when the primary model/provider is valid.
  • If Google/Gemini config is invalid, the startup error should identify the actual missing/invalid secret or underlying import/validation error.
  • plugins disable google should prevent Google plugin/contract/secrets-reloader loading, or the CLI should clearly state that configured Gemini models will still force it into the startup path.
  • plugins uninstall google should not be silently undone by auto-enable without a clear warning/override mechanism.
  • Stability bundles for gateway.startup_failed should include the real message/stack and useful event context.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix [v29] Google secrets reloader crash-loop: Unable to open bundled plugin public surface google/web-search-contract-api.js [1 comments, 2 participants]