tinyhumansai/openhuman · warning
Cannot reveal " " on this device — it is a path on the…
Error message
Cannot reveal "${path}" on this device — it is a path on the openhuman-core host's filesystem (a different OS). Open it on the machine running the core. What it means
revealPath() is about to hand a path to the OS opener (revealItemInDir) but first runs isForeignFsPath(path, clientOs): if the path's shape belongs to a different operating system than this client (C:\... on macOS/Linux, /Users/... on Windows), it throws this explanatory error instead of letting the opener fail cryptically (issue #4278). It means the path came from the core's filesystem, and the core runs on another machine/OS.
Solutions
- Open the path on the machine actually running the core (SSH/remote desktop/file share) — no client-side fix will make a foreign filesystem path local
- If you own the call site, catch this error and render a 'path lives on the core host at <path>' hint instead of a generic failure
- For local-core setups, verify the core really is local — the detected mismatch means the serving core is remote (or the path was copy-pasted from another machine)
Example fix
// before
await revealPath(artifactPath);
// after
try {
await revealPath(artifactPath);
} catch (err) {
if (err instanceof Error && err.message.includes('core host')) {
showHint(`Open on the core host: ${artifactPath}`);
} else throw err;
} Defensive patterns
Strategy: validation
Validate before calling
// Expose the same check the util uses, before attempting reveal:
import { isForeignFsPath } from '../../utils/openUrl'; // if exported; else replicate:
function looksLikeWindowsPath(p: string) { return /^[a-zA-Z]:\\/.test(p); }
function looksLikePosixPath(p: string) { return p.startsWith('/'); }
const clientOs = await platform();
if (isForeignFsPath(path, clientOs)) {
showHint(`This file lives on the core host (${path}) — open it there.`);
} Type guard
function isRevealableLocally(path: string, clientOs: string | undefined): boolean {
if (clientOs === 'windows') return !looksLikePosixPath(path) || path.startsWith('C:/');
return !looksLikeWindowsPath(path);
} Try / catch
try { await revealPath(path); }
catch (err) {
if (err instanceof Error && err.message.includes("core host's filesystem")) {
showHint(`Open on the machine running the core: ${path}`);
return;
}
throw err;
} Prevention
- For remote-core setups, render 'path on core host' inline instead of a reveal button
- Remember issue #4278: core-served absolute paths are host paths, not client paths
- Catch this specific message and turn it into guidance — it was created precisely to replace cryptic opener failures
When it happens
Trigger: A remote/shared openhuman-core (docker container, LAN core on another OS, cloud) returned its own absolute path in an artifact, memory source, or log line, and the client tried to reveal it locally; client platform() call returns the host OS and mismatches the path style.
Common situations: iOS/remote clients browsing artifacts produced by a Linux docker core; a macOS laptop driving a Windows home server; any setup where 'the machine running the core' is not 'this device'.
Related errors
- DOWNLOAD_FAILED
- Config path is a directory, not a file
- Core RPC token unavailable in Tauri; local RPC auth cannot…
- Failed to atomically persist active user state
- Failed to atomically persist active workspace marker
AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17).
Data as JSON: /api/errors/f76fab82e14411e8.
Report an issue: GitHub.
Appendix: source
Thrown at app/src/utils/openUrl.ts:117
* deep link (e.g. `obsidian://`) may silently no-op because the
* target app isn't installed.
*
* Outside Tauri this is a no-op — there's no OS shell to drive.
*
* Rejects with a clear error when `path` belongs to a different OS than this
* device (issue #4278) — e.g. a shared `openhuman-core` running on another OS
* served its own absolute path — instead of letting the opener fail cryptically.
*/
export const revealPath = async (path: string): Promise<void> => {
if (!isTauri()) return;
let clientOs: string | undefined;
try {
clientOs = await platform();
} catch {
clientOs = undefined;
}
if (isForeignFsPath(path, clientOs)) {
throw new Error(
`Cannot reveal "${path}" on this device — it is a path on the openhuman-core host's filesystem (a different OS). Open it on the machine running the core.`
);
}
await revealItemInDir(path);
};
View on GitHub (pinned to 7491200858)