Skip to content

fix(onboard): avoid false 'telegram plugin not available' block#25803

Merged
steipete merged 1 commit intoopenclaw:mainfrom
Suko:fix/onboard-telegram-plugin-not-available-25545
Feb 24, 2026
Merged

fix(onboard): avoid false 'telegram plugin not available' block#25803
steipete merged 1 commit intoopenclaw:mainfrom
Suko:fix/onboard-telegram-plugin-not-available-25545

Conversation

@Suko
Copy link
Contributor

@Suko Suko commented Feb 24, 2026

Summary

  • Problem: openclaw onboard channel wizard can report “telegram plugin not available” and block setup even when Telegram is a built-in channel, due to the plugin registry not being populated during onboarding in some environments (as reported in [Bug]: Telegram plugin not available on v2026.2.22-2 #25545).
  • Why it matters: Users can’t onboard Telegram at all (major onboarding reliability failure) even after manually enabling Telegram in openclaw.json.
  • What changed: Onboarding adapter lookup now has a built-in fallback for core channels (Telegram/WhatsApp/Discord/Slack/Signal/iMessage) so onboarding can proceed even if the plugin registry is empty; wizard messaging is adjusted to continue when an onboarding adapter exists; added a regression test covering the “empty registry” scenario.
  • What did NOT change (scope boundary): No changes to Telegram runtime transport, polling, message handling, or plugin loading behavior at gateway startup—this is onboarding resiliency + messaging only.

Change Type (select all)

  • Bug fix
  • Feature
  • Refactor
  • Docs
  • Security hardening
  • Chore/infra

Scope (select all touched areas)

  • Gateway / orchestration
  • Skills / tool execution
  • Auth / tokens
  • Memory / storage
  • Integrations
  • API / contracts
  • UI / DX
  • CI/CD / infra

Linked Issue/PR

User-visible / Behavior Changes

  • openclaw onboard no longer hard-blocks Telegram setup with “telegram plugin not available” when the plugin registry is empty; it proceeds with onboarding using built-in adapters and shows an actionable note if the registry is missing.

Security Impact (required)

  • New permissions/capabilities? No
  • Secrets/tokens handling changed? No
  • New/changed network calls? No
  • Command/tool execution surface changed? No
  • Data access scope changed? No

Repro + Verification

Environment

  • OS: macOS (dev)
  • Runtime/container: Node 22.x
  • Model/provider: N/A
  • Integration/channel (if any): Telegram onboarding
  • Relevant config (redacted): N/A

Steps

  1. Run openclaw onboard and select Telegram.
  2. Simulate/encounter an environment where the plugin registry is empty during onboarding.
  3. Attempt to proceed through Telegram setup.

Expected

  • Onboarding should allow Telegram configuration to proceed.

Actual (before)

  • Wizard stops with “telegram plugin not available.”

Evidence

  • Failing behavior described in [Bug]: Telegram plugin not available on v2026.2.22-2 #25545
  • Added regression test: src/commands/onboard-channels.test.ts (“continues Telegram onboarding even when plugin registry is empty…”)
  • Local checks: pnpm check passed; targeted test pnpm test src/commands/onboard-channels.test.ts passed

Human Verification (required)

  • Verified scenarios: Ran pnpm check; ran pnpm test src/commands/onboard-channels.test.ts; confirmed the new test covers the reported failure mode.
  • Edge cases checked: Onboarding still works when plugin registry is populated; fallback adapters are overridden by registry adapters when present.
  • What you did not verify: End-to-end onboarding against a real Telegram bot token in the exact macOS 26.3 environment reported.

Compatibility / Migration

  • Backward compatible? Yes
  • Config/env changes? No
  • Migration needed? No

Failure Recovery (if this breaks)

  • How to disable/revert this change quickly: Revert this PR.
  • Files/config to restore: src/commands/onboarding/registry.ts, src/commands/onboard-channels.ts, src/commands/onboard-channels.test.ts
  • Known bad symptoms reviewers should watch for: Onboarding wizard showing the wrong adapter for a channel, or failing to detect installed plugins.

Risks and Mitigations

  • Risk: Built-in adapter fallback could mask deeper plugin registry loading problems during onboarding.
  • Mitigation: Fallback is limited to onboarding adapter resolution; registry adapters still take precedence when present; added a regression test for the failure mode.

Greptile Summary

Adds built-in fallback adapters for core channels (Telegram/WhatsApp/Discord/Slack/Signal/iMessage) to prevent onboarding failures when the plugin registry fails to populate during openclaw onboard. The Map construction in registry.ts:31 correctly ensures registry adapters override built-ins when present (last entry wins). The change is scoped to onboarding adapter resolution only and doesn't affect runtime plugin loading or gateway startup behavior.

  • Fixed false "telegram plugin not available" blocking during onboarding ([Bug]: Telegram plugin not available on v2026.2.22-2 #25545)
  • Added comprehensive regression test covering empty registry scenario
  • Wizard messaging updated to provide actionable guidance when registry is missing
  • No impact on runtime transport, polling, or message handling

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • The change is well-scoped to onboarding adapter lookup with clear fallback logic, includes a targeted regression test covering the reported failure mode, and the Map construction correctly preserves registry adapter precedence. The fix doesn't touch runtime behavior or plugin loading at gateway startup.
  • No files require special attention

Last reviewed commit: 68cab42

(4/5) You can add custom instructions or style guidelines for the agent here!

@openclaw-barnacle openclaw-barnacle bot added commands Command implementations size: S labels Feb 24, 2026
@steipete steipete merged commit b3e6653 into openclaw:main Feb 24, 2026
28 checks passed
@steipete
Copy link
Contributor

Landed with broader fallback-adapter test coverage.

  • Added direct registry tests for empty-registry fallback and registry-overrides-builtins behavior
  • Strengthened onboarding flow test to assert explicit "continuing with onboarding" path (no hard stop)
  • Validation: pnpm test src/commands/onboarding/registry.test.ts src/commands/onboard-channels.test.ts
  • Land commit: fdc058e6c30956e7fdb982f90259b7c4a19761d5
  • Merge commit: b3e66535036f4b71c4f46083a8e057560eb78f41

Thanks @Suko.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

commands Command implementations size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Telegram plugin not available on v2026.2.22-2

2 participants