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

  1. 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
  2. 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
  3. 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

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


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)