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
- Verify the folder exists before resolving its title
- Catch and substitute a placeholder title for deleted folders
- Clean up dangling folder references on delete
- 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
- Pass the loaded doc when available instead of re-querying
- Cascade or clean references when deleting folders
- Prefer soft-delete for folders referenced elsewhere
- Use the Folder provider only with folder refs
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
- File not found, _id: ${ref}
- file not found
- Cannot resolve a ProjectDocument for document ${document._id
- parent not found
- Document not found: ${JSON.stringify(query)}
AI-assisted analysis of hcengineering/platform@63e28dc964 (2026-08-29).
Data as JSON: /api/errors/adbcff1904184902.
Report an issue: GitHub.