SillyTavern/SillyTavern · warning · Error
webllm-not-updated
webllm-not-updated
Error message
WebLLM is not updated
What it means
Thrown by #checkWebLlm when SillyTavern.llm exists but lacks a generateEmbedding function. WebLLM is present (older version) but predates the embedding API, so the embedding workflow cannot run even though text generation might work.
Source
Thrown at public/scripts/extensions/vectors/webllm.js:19
export class WebLlmVectorProvider {
/** @type {object?} WebLLM engine */
#engine = null;
constructor() {
this.#engine = null;
}
/**
* Check if WebLLM is available and up-to-date
* @throws {Error} If WebLLM is not available or not up-to-date
*/
#checkWebLlm() {
if (!Object.hasOwn(SillyTavern, 'llm')) {
throw new Error('WebLLM is not available', { cause: 'webllm-not-available' });
}
if (typeof SillyTavern.llm.generateEmbedding !== 'function') {
throw new Error('WebLLM is not updated', { cause: 'webllm-not-updated' });
}
}
/**
* Initialize the engine with a model.
* @param {string} modelId Model ID to initialize the engine with
* @returns {Promise<void>} Promise that resolves when the engine is initialized
*/
#initEngine(modelId) {
this.#checkWebLlm();
if (!this.#engine) {
this.#engine = SillyTavern.llm.getEngine();
}
return this.#engine.loadModel(modelId);
}
/**View on GitHub (pinned to 8172dcd0ee)
Solutions
- Update both SillyTavern and its WebLLM integration to matching, current versions.
- Hard-reload (bypass cache) so a stale cached WebLLM script is replaced.
- Check the browser console for the loaded WebLLM version.
- Switch to a different vector source until the versions are aligned.
Example fix
null
Defensive patterns
Strategy: type-guard
Validate before calling
if (settings.source === 'webllm'
&& !(Object.hasOwn(SillyTavern, 'llm') && typeof SillyTavern.llm.generateEmbedding === 'function')) {
// block: WebLLM present but too old for embeddings
} Type guard
const webLlmEmbedsReady = () => Object.hasOwn(SillyTavern, 'llm') && typeof SillyTavern.llm?.generateEmbedding === 'function';
Try / catch
null
Prevention
- Keep SillyTavern and the WebLLM extension at matching versions.
- Hard-reload to drop a stale cached WebLLM script.
- Verify generateEmbedding exists before offering WebLLM embeddings.
When it happens
Trigger: A partially-updated install: the WebLLM runtime registered SillyTavern.llm, but the version does not yet expose generateEmbedding.
Common situations: Updated the host but not the WebLLM extension, or vice versa; cached old WebLLM script served by the browser; mismatched extension/runtime versions.
Related errors
- webllm_not_supported
- webllm-not-available
- WebLLM extension is not installed.
- Audio playback failed: ${playError.message}
- Failed to insert vector items for collection ${collectionId}
AI-assisted analysis of SillyTavern/SillyTavern@8172dcd0ee (2026-08-13).
Data as JSON: /api/errors/c42c9b8f8fa603fd.
Report an issue: GitHub.