paperclipai/paperclip · error · Error
Only managed_subfolder spaces are supported until dynamic lo
Error message
Only managed_subfolder spaces are supported until dynamic local folder bindings are available.
What it means
Thrown by createSpace when input.folderMode is set to anything other than 'managed_subfolder' (the default). Other folder modes (e.g. external local bindings) are not yet implemented, so createSpace refuses them.
Source
Thrown at packages/plugins/plugin-llm-wiki/src/wiki/core.ts:1418
FROM ${spaceTable(ctx)}
WHERE company_id = $1 AND wiki_id = $2 AND status <> 'archived'
ORDER BY CASE WHEN slug = 'default' THEN 0 ELSE 1 END, display_name, slug`,
[input.companyId, wikiId],
);
const spaces = rows.length > 0 ? rows.map(wikiSpaceFromRow) : [fallbackDefaultSpace({ companyId: input.companyId, wikiId })];
return { spaces };
}
export async function createSpace(ctx: PluginContext, input: CreateSpaceInput): Promise<{ status: "created"; space: WikiSpace }> {
const wikiId = normalizeWikiId(input.wikiId);
const displayName = stringField(input.displayName) ?? stringField(input.slug) ?? "New space";
const slug = normalizeSpaceSlug(input.slug ?? displayName);
if (slug === DEFAULT_SPACE_SLUG) {
return { status: "created", space: await ensureDefaultSpace(ctx, { companyId: input.companyId, wikiId }) };
}
const folderMode = input.folderMode ?? "managed_subfolder";
if (folderMode !== "managed_subfolder") {
throw new Error("Only managed_subfolder spaces are supported until dynamic local folder bindings are available.");
}
const accessScope = input.accessScope ?? "shared";
const id = randomUUID();
const pathPrefix = `spaces/${slug}`;
await ctx.db.execute(
`INSERT INTO ${spaceTable(ctx)}
(id, company_id, wiki_id, slug, display_name, space_type, folder_mode, root_folder_key, path_prefix, access_scope, settings, status)
VALUES ($1, $2, $3, $4, $5, 'local_folder', $6, $7, $8, $9, $10::jsonb, 'active')`,
[
id,
input.companyId,
wikiId,
slug,
displayName,
folderMode,
WIKI_ROOT_FOLDER_KEY,
pathPrefix,
accessScope,View on GitHub (pinned to 67001ec6eb)
Solutions
- Omit folderMode so it defaults to 'managed_subfolder'.
- If you passed folderMode explicitly, set it to 'managed_subfolder'.
- Wait for dynamic local folder bindings to ship before attempting external folder modes.
Example fix
// before
await createSpace(ctx, { companyId, slug: "docs", folderMode: "external_folder" });
// after
await createSpace(ctx, { companyId, slug: "docs" });
// or
await createSpace(ctx, { companyId, slug: "docs", folderMode: "managed_subfolder" }); Defensive patterns
Strategy: validation
Validate before calling
function sanitizeCreateSpaceInput(input) {
const folderMode = input.folderMode ?? "managed_subfolder";
if (folderMode !== "managed_subfolder") {
throw new Error(`Unsupported folderMode: ${folderMode}`);
}
return { ...input, folderMode };
} Type guard
function isSupportedFolderMode(input) {
const m = input.folderMode ?? "managed_subfolder";
return m === "managed_subfolder";
} Try / catch
try {
await createSpace(ctx, input);
} catch (err) {
if (/Only managed_subfolder spaces are supported/.test(err.message)) {
return createSpace(ctx, { ...input, folderMode: "managed_subfolder" });
}
throw err;
} Prevention
- Omit folderMode or set it to 'managed_subfolder'.
- Do not expose unsupported modes in the UI.
- Wait for dynamic local folder bindings before attempting external folders.
When it happens
Trigger: Calling createSpace with folderMode set to a value like 'external_folder', 'local_root', or any custom string.
Common situations: Trying to bind an existing external folder to a wiki space; experimental feature flags enabling unsupported modes; passing an explicit folderMode that differs from the default.
Related errors
- LLM Wiki space not found: ${slug}
- LLM Wiki space status must be active or archived.
- The default LLM Wiki space cannot be archived.
- selected_projects exceeds the hard cap of ${MAX_PAPERCLIP_PR
- Project belongs to another company or does not exist: ${proj
AI-assisted analysis of paperclipai/paperclip@67001ec6eb (2026-08-12).
Data as JSON: /api/errors/681116b71ec4a995.
Report an issue: GitHub.