openclaw - 💡(How to fix) Fix [5.9-beta.1] huggingface/openrouter/xai plugins fail register: api.registerModelCatalogProvider is not a function [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#80202Fetched 2026-05-11 03:17:40
View on GitHub
Comments
1
Participants
2
Timeline
2
Reactions
2
Timeline (top)
commented ×1cross-referenced ×1

In OpenClaw 2026.5.9-beta.1, three bundled stock plugins (huggingface, openrouter, xai) fail during register with TypeError: api.registerModelCatalogProvider is not a function.

The function exists in the dist code (defined at multiple call-sites in loader-Dkfj5Os7.js + the api-builder at api-builder-DbJ53RLT.js:101), and a fourth bundled plugin (github-copilot) calls the same method successfully. So the failure looks like a code-path-difference where the api object passed to these three plugins at register-time doesn't expose registerModelCatalogProvider.

This appears to be a 5.9-beta.1 regression introduced by the new "unified model catalog registration for text, image, video, and music providers" SDK addition mentioned in the release notes.

Error Message

[plugins] huggingface failed during register from C:\Users<USER>\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\huggingface\index.js: TypeError: api.registerModelCatalogProvider is not a function [plugins] openrouter failed during register from C:\Users<USER>\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\openrouter\index.js: TypeError: api.registerModelCatalogProvider is not a function [plugins] xai failed during register from C:\Users<USER>\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\xai\index.js: TypeError: api.registerModelCatalogProvider is not a function [plugins] 3 plugin(s) failed to initialize (register: huggingface, openrouter, xai). Run 'openclaw plugins list' for details.

Root Cause

In OpenClaw 2026.5.9-beta.1, three bundled stock plugins (huggingface, openrouter, xai) fail during register with TypeError: api.registerModelCatalogProvider is not a function.

The function exists in the dist code (defined at multiple call-sites in loader-Dkfj5Os7.js + the api-builder at api-builder-DbJ53RLT.js:101), and a fourth bundled plugin (github-copilot) calls the same method successfully. So the failure looks like a code-path-difference where the api object passed to these three plugins at register-time doesn't expose registerModelCatalogProvider.

This appears to be a 5.9-beta.1 regression introduced by the new "unified model catalog registration for text, image, video, and music providers" SDK addition mentioned in the release notes.

Fix Action

Workaround

Disable the three plugins in ~/.openclaw/openclaw.json:

"plugins": {
  "entries": {
    "huggingface": { "enabled": false },
    "openrouter": { "enabled": false },
    "xai": { "enabled": false }
  }
}

Re-enable when fixed in stable 5.9.

Code Example

[plugins] huggingface failed during register from C:\Users\<USER>\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\huggingface\index.js: TypeError: api.registerModelCatalogProvider is not a function
[plugins] openrouter failed during register from C:\Users\<USER>\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\openrouter\index.js: TypeError: api.registerModelCatalogProvider is not a function
[plugins] xai failed during register from C:\Users\<USER>\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\xai\index.js: TypeError: api.registerModelCatalogProvider is not a function
[plugins] 3 plugin(s) failed to initialize (register: huggingface, openrouter, xai). Run 'openclaw plugins list' for details.

---

"plugins": {
  "entries": {
    "huggingface": { "enabled": false },
    "openrouter": { "enabled": false },
    "xai": { "enabled": false }
  }
}
RAW_BUFFERClick to expand / collapse

Summary

In OpenClaw 2026.5.9-beta.1, three bundled stock plugins (huggingface, openrouter, xai) fail during register with TypeError: api.registerModelCatalogProvider is not a function.

The function exists in the dist code (defined at multiple call-sites in loader-Dkfj5Os7.js + the api-builder at api-builder-DbJ53RLT.js:101), and a fourth bundled plugin (github-copilot) calls the same method successfully. So the failure looks like a code-path-difference where the api object passed to these three plugins at register-time doesn't expose registerModelCatalogProvider.

This appears to be a 5.9-beta.1 regression introduced by the new "unified model catalog registration for text, image, video, and music providers" SDK addition mentioned in the release notes.

Reproduction

  1. Install OpenClaw 2026.5.9-beta.1: openclaw update --tag 2026.5.9-beta.1 --yes
  2. Enable any of huggingface, openrouter, xai plugins in ~/.openclaw/openclaw.json (default state for stock plugins is enabled)
  3. Restart gateway: openclaw gateway restart
  4. Observe gateway console output during startup

Observed errors

[plugins] huggingface failed during register from C:\Users\<USER>\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\huggingface\index.js: TypeError: api.registerModelCatalogProvider is not a function
[plugins] openrouter failed during register from C:\Users\<USER>\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\openrouter\index.js: TypeError: api.registerModelCatalogProvider is not a function
[plugins] xai failed during register from C:\Users\<USER>\AppData\Roaming\npm\node_modules\openclaw\dist\extensions\xai\index.js: TypeError: api.registerModelCatalogProvider is not a function
[plugins] 3 plugin(s) failed to initialize (register: huggingface, openrouter, xai). Run 'openclaw plugins list' for details.

Code analysis

The function name registerModelCatalogProvider IS present in dist:

  • dist/api-builder-DbJ53RLT.js:101registerModelCatalogProvider: handlers.registerModelCatalogProvider ?? noopRegisterModelCatalogProvider
  • dist/bundled-capability-runtime-C11petUs.js:109 — defines registerModelCatalogProvider(provider) {...}
  • dist/loader-Dkfj5Os7.js:996, 1053, 1069, 1079, 1409, 3008 — multiple registration code-paths
  • dist/extensions/github-copilot/index.js:336 — calls api.registerModelCatalogProvider(...) and apparently loads successfully
  • dist/extensions/{huggingface,openrouter,xai}/index.js — call the same and fail

Hypothesis: the api object built for these three plugins at register-time follows a different code-path than the one for github-copilot, and the new method isn't being included on the way through.

Severity

Medium. Plugins fail registration but other operations may continue to work (we haven't fully tested). Affects users of HuggingFace, OpenRouter, and xAI providers — those who configured these for testing models will see catalog-providers not surface.

Workaround

Disable the three plugins in ~/.openclaw/openclaw.json:

"plugins": {
  "entries": {
    "huggingface": { "enabled": false },
    "openrouter": { "enabled": false },
    "xai": { "enabled": false }
  }
}

Re-enable when fixed in stable 5.9.

Environment

  • OpenClaw 2026.5.9-beta.1
  • Windows 11 Pro 26200
  • Node 24.15.0

Related

Possibly related: deprecation warning observed in same gateway console — plugin runtime config.loadConfig() is deprecated (runtime-config-load-write); use config.current(). — suggests SDK migration in flight; the catalog-provider issue may be in the same migration scope.

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