You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The default-enabled extension @deepseek-ai/dsh-plugin-package-inventory-deepseek resolves the package.json of every active loader entry at request time:
PackageIdentityResolver.resolve() throws (cannot resolve active package ... / manifest missing name or version) when any entry is broken. One broken plugin entry therefore kills every chat request.
How it happened here (repro steps)
Install a plugin through the dshmarket UI (e.g. dsh-chat-import); the market hot-mounts it ([dsh-market] hot-mounted dsh-chat-import), which also leaves an empty node_modules/@linxin666/ scope directory behind.
Uninstall the plugin. Uninstall cleans up most of it, but leftovers (empty directories, market state records) keep a broken entry resolvable by the loader.
Send any message → 100% failure with REQUEST_EXTENSION.
Workaround: disable the inventory plugin in the profile patch:
(The failure happened ~45 ms after request start — a local resolution error, not a network issue.)
Suggested fixes (either or both)
Degrade instead of abort: plugin-package-inventory-deepseek's prepare should catch per-package resolution errors, skip the broken entry (or the whole field), and log a warning — a statistics field must never take down the chat.
Surface the cause: the wrapped LlmError hides cause from both the UI and the log file, making this impossible to self-diagnose. Log the cause chain (or include it in the UI error details).
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Environment
@deepseek-ai/dsh-base,@deepseek-ai/dsh-web-app,dshmarket(1.45.1)Symptom
Every chat turn and every automatic session-title generation fails with:
The API key itself is valid (direct
curlagainstapi.deepseek.comreturns 200), and the credential service has the key stored.Root cause
In
@deepseek-ai/dsh-llm-deepseek(lib/index.js, thestream()path), any error thrown while preparing request extensions aborts the entire request:The default-enabled extension
@deepseek-ai/dsh-plugin-package-inventory-deepseekresolves thepackage.jsonof every active loader entry at request time:PackageIdentityResolver.resolve()throws (cannot resolve active package .../ manifest missing name or version) when any entry is broken. One broken plugin entry therefore kills every chat request.How it happened here (repro steps)
dsh-chat-import); the market hot-mounts it ([dsh-market] hot-mounted dsh-chat-import), which also leaves an emptynode_modules/@linxin666/scope directory behind.REQUEST_EXTENSION.After this, chat works again (requests simply no longer carry the
dsh_plugin_packagesfield).Log evidence
(The failure happened ~45 ms after request start — a local resolution error, not a network issue.)
Suggested fixes (either or both)
plugin-package-inventory-deepseek's prepare should catch per-package resolution errors, skip the broken entry (or the whole field), and log a warning — a statistics field must never take down the chat.LlmErrorhidescausefrom both the UI and the log file, making this impossible to self-diagnose. Log the cause chain (or include it in the UI error details).中文摘要
DeepSeek request extension preparation failed (REQUEST_EXTENSION),API key 本身有效。llm-deepseek把扩展准备阶段的任何异常都升级为请求失败;默认启用的plugin-package-inventory-deepseek在请求时解析所有活跃插件的 package.json,任一插件条目损坏(如通过 dshmarket 安装又卸载后残留空目录)即抛错。All reactions