{"record":{"id":"681116b71ec4a995","repo":"paperclipai/paperclip","slug":"only-managed-subfolder-spaces-are-supported-until","errorCode":null,"errorMessage":"Only managed_subfolder spaces are supported until dynamic local folder bindings are available.","messagePattern":"Only managed_subfolder spaces are supported until dynamic local folder bindings are available\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/plugins/plugin-llm-wiki/src/wiki/core.ts","lineNumber":1418,"sourceCode":"       FROM ${spaceTable(ctx)}\n      WHERE company_id = $1 AND wiki_id = $2 AND status <> 'archived'\n      ORDER BY CASE WHEN slug = 'default' THEN 0 ELSE 1 END, display_name, slug`,\n    [input.companyId, wikiId],\n  );\n  const spaces = rows.length > 0 ? rows.map(wikiSpaceFromRow) : [fallbackDefaultSpace({ companyId: input.companyId, wikiId })];\n  return { spaces };\n}\n\nexport async function createSpace(ctx: PluginContext, input: CreateSpaceInput): Promise<{ status: \"created\"; space: WikiSpace }> {\n  const wikiId = normalizeWikiId(input.wikiId);\n  const displayName = stringField(input.displayName) ?? stringField(input.slug) ?? \"New space\";\n  const slug = normalizeSpaceSlug(input.slug ?? displayName);\n  if (slug === DEFAULT_SPACE_SLUG) {\n    return { status: \"created\", space: await ensureDefaultSpace(ctx, { companyId: input.companyId, wikiId }) };\n  }\n  const folderMode = input.folderMode ?? \"managed_subfolder\";\n  if (folderMode !== \"managed_subfolder\") {\n    throw new Error(\"Only managed_subfolder spaces are supported until dynamic local folder bindings are available.\");\n  }\n  const accessScope = input.accessScope ?? \"shared\";\n  const id = randomUUID();\n  const pathPrefix = `spaces/${slug}`;\n  await ctx.db.execute(\n    `INSERT INTO ${spaceTable(ctx)}\n       (id, company_id, wiki_id, slug, display_name, space_type, folder_mode, root_folder_key, path_prefix, access_scope, settings, status)\n     VALUES ($1, $2, $3, $4, $5, 'local_folder', $6, $7, $8, $9, $10::jsonb, 'active')`,\n    [\n      id,\n      input.companyId,\n      wikiId,\n      slug,\n      displayName,\n      folderMode,\n      WIKI_ROOT_FOLDER_KEY,\n      pathPrefix,\n      accessScope,","sourceCodeStart":1400,"sourceCodeEnd":1436,"githubUrl":"https://github.com/paperclipai/paperclip/blob/67001ec6eb96ae601aa27bc91d9b2415d665334a/packages/plugins/plugin-llm-wiki/src/wiki/core.ts#L1400-L1436","documentation":"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.","triggerScenarios":"Calling createSpace with folderMode set to a value like 'external_folder', 'local_root', or any custom string.","commonSituations":"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.","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."],"exampleFix":"// before\nawait createSpace(ctx, { companyId, slug: \"docs\", folderMode: \"external_folder\" });\n\n// after\nawait createSpace(ctx, { companyId, slug: \"docs\" });\n// or\nawait createSpace(ctx, { companyId, slug: \"docs\", folderMode: \"managed_subfolder\" });","handlingStrategy":"validation","validationCode":"function sanitizeCreateSpaceInput(input) {\n  const folderMode = input.folderMode ?? \"managed_subfolder\";\n  if (folderMode !== \"managed_subfolder\") {\n    throw new Error(`Unsupported folderMode: ${folderMode}`);\n  }\n  return { ...input, folderMode };\n}","typeGuard":"function isSupportedFolderMode(input) {\n  const m = input.folderMode ?? \"managed_subfolder\";\n  return m === \"managed_subfolder\";\n}","tryCatchPattern":"try {\n  await createSpace(ctx, input);\n} catch (err) {\n  if (/Only managed_subfolder spaces are supported/.test(err.message)) {\n    return createSpace(ctx, { ...input, folderMode: \"managed_subfolder\" });\n  }\n  throw err;\n}","preventionTips":["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."],"tags":["validation","wiki","spaces","unsupported-feature","paperclip"],"backgroundTag":null,"analyzedSha":"67001ec6eb96ae601aa27bc91d9b2415d665334a","analyzedAt":"2026-08-12T12:05:45.408Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}