hcengineering/platform · error

Folder not found, _id: ${ref}

Error message

Folder not found, _id: ${ref}

What it means

FolderTitleProvider mirrors FileTitleProvider for folders: it looks up drive.class.Folder by _id and throws if the folder cannot be found. Title resolution must always succeed for valid references, so missing folders are surfaced as errors.

Source

Thrown at plugins/drive-resources/src/index.ts:259

  const results = await Promise.all(
    doc.map(async (p) => {
      return permissions.restrictedSpaces.has(p.space)
        ? canRemoveDoc(drive.class.Folder, p.space, permissions)
        : await canDeleteObject(doc)
    })
  )
  return results.every(Boolean)
}

export async function FileTitleProvider (client: Client, ref: Ref<File>, doc?: File): Promise<string> {
  const object = doc ?? (await client.findOne(drive.class.File, { _id: ref }))
  if (object === undefined) throw new Error(`File not found, _id: ${ref}`)
  return object.title
}

export async function FolderTitleProvider (client: Client, ref: Ref<Folder>, doc?: Folder): Promise<string> {
  const object = doc ?? (await client.findOne(drive.class.Folder, { _id: ref }))
  if (object === undefined) throw new Error(`Folder not found, _id: ${ref}`)
  return object.title
}

export default async (): Promise<Resources> => ({
  component: {
    CreateDrive,
    DrivePanel,
    DriveSpaceHeader,
    DriveSpacePresenter,
    DrivePresenter,
    EditFile,
    EditFolder,
    FilePanel,
    FilePresenter,
    FileSizePresenter,
    FileVersionPresenter,
    FileVersionVersionPresenter,
    FolderPanel,

View on GitHub (pinned to 63e28dc964)

Solutions

  1. Verify the folder exists before resolving its title
  2. Catch and substitute a placeholder title for deleted folders
  3. Clean up dangling folder references on delete
  4. Confirm the correct id and provider pairing (folder vs file)

Example fix

// before
const title = await FolderTitleProvider(client, ref)
// after
const folder = await client.findOne(drive.class.Folder, { _id: ref })
const title = folder ? folder.title : '(deleted folder)'
Defensive patterns

Strategy: fallback

Validate before calling

const folder = doc ?? await client.findOne(drive.class.Folder, { _id: ref })
if (folder === undefined) return '(deleted folder)'

Type guard

async function folderExists(client: Client, ref: Ref<Folder>): Promise<boolean> {
  return (await client.findOne(drive.class.Folder, { _id: ref })) !== undefined
}

Try / catch

try {
  return await FolderTitleProvider(client, ref, doc)
} catch (err) {
  if (err.message.startsWith('Folder not found')) {
    return '(deleted folder)'
  }
  throw err
}

Prevention

When it happens

Trigger: Rendering a title for a Folder ref that was deleted or never existed; stale references in notifications/activity; passing a file id to the folder provider.

Common situations: Folder removed by another user before a referencing view loads; import/export tooling carrying stale ids; cascade deletes not cleaning up references.

Related errors


AI-assisted analysis of hcengineering/platform@63e28dc964 (2026-08-29). Data as JSON: /api/errors/adbcff1904184902. Report an issue: GitHub.