{"record":{"id":"6f35c14325c20c25","repo":"hcengineering/platform","slug":"unsupported-entry-type-skipping","errorCode":null,"errorMessage":"Unsupported entry type, skipping: ","messagePattern":"Unsupported entry type, skipping: ","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"packages/importer/src/notion/notion.ts","lineNumber":586,"sourceCode":"    node.attrs = {\n      'file-id': meta.id,\n      src: fileUrl,\n      width: node.attrs.width ?? null,\n      height: node.attrs.height ?? null,\n      align: node.attrs.align ?? null,\n      alt: meta.name,\n      title: meta.name\n    }\n    const mimeType = getContentType(meta.name)\n    if (mimeType !== undefined) {\n      node.attrs['data-file-type'] = mimeType\n    }\n  }\n}\n\nasync function skip (...args: any): Promise<void> {\n  const docMeta = args[5]\n  console.warn('Unsupported entry type, skipping: ', docMeta)\n}\n\nfunction isExternalLink (href: any): boolean {\n  return URL.canParse(href)\n}\n\nfunction safeDecodeURI (uri: string): string {\n  try {\n    return decodeURI(uri)\n  } catch (e) {\n    return uri\n  }\n}\n\nfunction extractNotionId (fileName: string): string | undefined {\n  const decoded = safeDecodeURI(fileName).trimEnd()\n  const matched = decoded.match(/ ([\\w\\d]{32}(_all)?)(\\.|$)/)\n  return matched !== null && matched.length >= 2 ? matched[1] : undefined","sourceCodeStart":568,"sourceCodeEnd":604,"githubUrl":"https://github.com/hcengineering/platform/blob/63e28dc96483967b2fc21c881b3f1023c1de7718/packages/importer/src/notion/notion.ts#L568-L604","documentation":"skip() is the fallback handler invoked when the Notion importer encounters an entry whose type it does not support. It logs 'Unsupported entry type, skipping: ' plus the entry's docMeta and returns without importing anything. The entry is omitted from the import result.","triggerScenarios":"importPageDocument walks the Notion export and dispatches entries by type; an unknown/unhandled entry type routes to skip(), passing docMeta as args[5].","commonSituations":"New Notion block/database types not yet supported by the importer; unusual page types (databases, linked databases, widgets) inside an imported tree; importer version lagging behind Notion export format changes.","solutions":["Identify the skipped type from the logged docMeta and add a handler for it in the importer dispatch.","Exclude unsupported entry types from the import selection if they are not needed.","Upgrade the importer package to a version supporting the entry type.","If the skipped content is required, convert it manually in Notion to a supported type (e.g. page) before import."],"exampleFix":"// before\nasync function skip (...args: any): Promise<void> {\n  const docMeta = args[5]\n  console.warn('Unsupported entry type, skipping: ', docMeta)\n}\n// after\nasync function skip (...args: any): Promise<void> {\n  const docMeta = args[5]\n  console.warn('Unsupported entry type, skipping: ', docMeta)\n  skippedEntries.push(docMeta) // report afterwards instead of silently dropping\n}","handlingStrategy":"fallback","validationCode":"// Pre-import: filter out entry types the importer does not support\nconst supported = new Set(['page', 'database'])\nconst unsupported = entries.filter(e => !supported.has(e.type))\nif (unsupported.length > 0) console.warn('Will be skipped:', unsupported.map(e => e.type))\n","typeGuard":"function isSupportedEntry (entry: { type: string }, supported: Set<string>): entry is { type: string } & Record<string, unknown> {\n  return supported.has(entry.type)\n}\n","tryCatchPattern":null,"preventionTips":["Keep the importer updated for new Notion block types.","Convert unsupported types in Notion before importing.","Aggregate skipped entries into an import report rather than dropping silently."],"tags":["import","notion","unsupported-type","migration"],"backgroundTag":"unsupported-import-entry-type","analyzedSha":"63e28dc96483967b2fc21c881b3f1023c1de7718","analyzedAt":"2026-08-29T15:21:27.377Z","schemaVersion":2},"datasetVersion":"2026-08-29T17:17:51.833Z"}