{"record":{"id":"693f08a679c19df3","repo":"toeverything/AFFiNE","slug":"failed-to-fitviewport","errorCode":null,"errorMessage":"failed to fitViewPort","messagePattern":"failed to fitViewPort","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/frontend/core/src/modules/peek-view/view/doc-preview/doc-peek-view.tsx","lineNumber":69,"sourceCode":"    viewport.onResize();\n\n    if (xywh) {\n      const newViewport = {\n        xywh: xywh,\n        padding: [60, 20, 20, 20] as [number, number, number, number],\n      };\n      viewport.setViewportByBound(\n        Bound.deserialize(newViewport.xywh),\n        newViewport.padding,\n        false\n      );\n    } else {\n      gfx.fitToScreen({\n        smooth: false,\n      });\n    }\n  } catch (e) {\n    logger.warn('failed to fitViewPort', e);\n  }\n}\n\nfunction DocPeekPreviewEditor({\n  xywh,\n}: {\n  xywh?: `[${number},${number},${number},${number}]`;\n}) {\n  const { editorService } = useServices({\n    EditorService,\n  });\n  const editor = editorService.editor;\n  const doc = editor.doc;\n  const workspace = editor.doc.workspace;\n  const mode = useLiveData(editor.mode$);\n  const defaultOpenProperty = useLiveData(editor.defaultOpenProperty$);\n  const workbench = useService(WorkbenchService).workbench;\n  const peekView = useService(PeekViewService).peekView;","sourceCodeStart":51,"sourceCodeEnd":87,"githubUrl":"https://github.com/toeverything/AFFiNE/blob/b4c8548c09da21b2898443559a5b846f0ccf5dd8/packages/frontend/core/src/modules/peek-view/view/doc-preview/doc-peek-view.tsx#L51-L87","documentation":"Warning logged in `fitViewport` when positioning the peek-preview editor viewport throws — for example Bound.deserialize failing on a malformed xywh string or the gfx viewport APIs throwing. The preview still shows; it is just not scrolled/zoomed to the target region.","triggerScenarios":"Triggered when setViewportByBound or fitToScreen throws while initializing the peek-view doc preview viewport, e.g. invalid xywh bounds or an unready surface.","commonSituations":"Occurs when opening a doc peek preview with a malformed saved viewport or before the editor surface is ready. The preview still renders; reopen it if positioning is off.","solutions":["Retry fitViewPort after the editor finishes rendering.","Check the editor has a valid viewport before calling."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b4c8548c09da21b2898443559a5b846f0ccf5dd8","analyzedAt":"2026-08-18T21:16:52.546Z","contentChangedAt":"2026-08-18T21:16:52.546Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}