{"record":{"id":"01c47062d3b210cb","repo":"tinyhumansai/openhuman","slug":"artifact-revealitemindir-failed","errorCode":null,"errorMessage":"[artifact] revealItemInDir failed:","messagePattern":"\\[artifact\\] revealItemInDir failed:","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/services/artifactDownloadService.ts","lineNumber":346,"sourceCode":"  } catch (err) {\n    const reason = err instanceof Error ? err.message : String(err);\n    return { ok: false, code: 'DELETE_FAILED', error: reason };\n  }\n}\n\nexport async function revealArtifactInFileManager(absolutePath: string): Promise<boolean> {\n  if (!isTauri()) return false;\n  if (!absolutePath.trim()) return false;\n  try {\n    // Use the plugin's typed binding — the raw `invoke('plugin:opener|\n    // reveal_item_in_dir', { path })` shape silently no-ops because the\n    // plugin expects `{ paths: [absolutePath] }` (array). The binding\n    // handles the wrap.\n    await revealItemInDir(absolutePath);\n    return true;\n  } catch (err) {\n    // Swallow — reveal is best-effort, the file is already saved.\n    console.warn('[artifact] revealItemInDir failed:', err);\n    return false;\n  }\n}\n","sourceCodeStart":328,"sourceCodeEnd":350,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/app/src/services/artifactDownloadService.ts#L328-L350","documentation":"Failure of revealArtifactInFileManager: the opener plugin's typed revealItemInDir binding (which wraps {paths:[...]} correctly) threw — typically the path no longer exists because the artifact was moved/deleted, or the OS file manager interaction failed. The catch warns and the function returns false so callers can show a 'reveal failed' hint instead of a silent no-op.","triggerScenarios":"Thrown at app/src/services/artifactDownloadService.ts:346 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the artifact still exists at the path before revealing","Return false to the caller and show inline UI feedback rather than retrying blindly","On persistent failure, offer to open the parent folder instead"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}