Mintplex-Labs/anything-llm · warning

Personalization is disabled.

Error message

Personalization is disabled.

What it means

403 from the memoryFeatureEnabled middleware guarding every /memories route. SystemSettings.memoriesEnabled() returned false — the Personalization feature flag is off — so the request is refused before any handler runs. Not a bug: an intentional disabled-feature gate.

Source

Thrown at server/endpoints/memory.js:14

const { Memory } = require("../models/memory");
const { SystemSettings } = require("../models/systemSettings");
const { userFromSession, reqBody } = require("../utils/http");
const { validatedRequest } = require("../utils/middleware/validatedRequest");
const {
  flexUserRoleValid,
  ROLES,
} = require("../utils/middleware/multiUserProtected");
const { validWorkspaceSlug } = require("../utils/middleware/validWorkspace");

async function memoryFeatureEnabled(_req, response, next) {
  const enabled = await SystemSettings.memoriesEnabled();
  if (!enabled)
    return response.status(403).json({ error: "Personalization is disabled." });
  next();
}

/**
 * Loads the memory by :memoryId and, in multi-user mode, scopes the query to the requester's userId.
 * A memory owned by another user returns null here and is indistinguishable from "not found" — 404 either way.
 */
async function validateMemoryOwner(request, response, next) {
  try {
    const clause = { id: Number(request.params.memoryId) };
    if (response.locals.multiUserMode) {
      const user = await userFromSession(request, response);
      clause.userId = user?.id ?? null;
    }

    const memory = await Memory.get(clause);
    if (!memory)
      return response.status(404).json({ error: "Memory not found." });

View on GitHub (pinned to 3aec848f28)

Solutions

  1. Enable Personalization (memories) in System Settings as admin
  2. If it should already be on, inspect the system_settings persistence to confirm the flag survived the last save
  3. Have clients treat 403 + this message as a feature state, showing a 'Personalization is disabled' UI instead of an error toast
  4. Re-issue the memory request after enabling

Example fix

// before
const res = await fetch('/memories');
// after
const res = await fetch('/memories');
if (res.status === 403) { showBanner('Personalization is disabled in settings'); return; }
Defensive patterns

Strategy: validation

Validate before calling

// One-time capability probe; cache the result
async function memoriesAvailable() {
  const r = await fetch('/memories');
  if (r.status === 403) return false; // Personalization is disabled.
  if (!r.ok) throw new Error('memories probe failed: ' + r.status);
  return true;
}

Prevention

When it happens

Trigger: Any GET/POST/PUT/DELETE on /memories* with a valid session and role while the Personalization/memory toggle in System Settings is disabled.

Common situations: Fresh install with personalization off by default; admin disabled the feature to control LLM token spend; the flag silently reset after a settings migration or reset flow.

Related errors


AI-assisted analysis of Mintplex-Labs/anything-llm@3aec848f28 (2026-08-18). Data as JSON: /api/errors/eca4d8c61f36395d. Report an issue: GitHub.