stablyai/orca · error · Error
Remote filesystem unavailable. Reconnect the SSH target befo
Error message
Remote filesystem unavailable. Reconnect the SSH target before retrying.
What it means
Thrown by 'hooks:writeIssueCommand' for an SSH repo (repo.connectionId set) when getSshFilesystemProvider(repo.connectionId) returns nothing. The remote filesystem provider is the bridge that writes .orca/issue-command over SSH; its absence means the SSH connection is gone, so writing is refused rather than silently dropping the command.
Source
Thrown at src/main/ipc/worktrees.ts:3446
: ('none' as const)
}
}
return readIssueCommand(repo.path)
}
)
ipcMain.handle(
'hooks:writeIssueCommand',
async (_event, args: { repoId: string; content: string; hostId?: ExecutionHostId }) => {
const repo = getRepoForWorktreeRemoval(store, args.repoId, args.hostId)
if (!repo || isFolderRepo(repo)) {
return
}
if (repo.connectionId) {
const issueCommandPath = joinWorktreeRelativePath(repo.path, '.orca/issue-command')
const fsProvider = getSshFilesystemProvider(repo.connectionId)
if (!fsProvider) {
throw new Error(
'Remote filesystem unavailable. Reconnect the SSH target before retrying.'
)
}
const trimmed = args.content.trim()
if (!trimmed) {
await fsProvider.deletePath(issueCommandPath, false).catch((error: unknown) => {
if (!isENOENT(error)) {
throw error
}
})
return
}
await fsProvider.createDir(joinWorktreeRelativePath(repo.path, '.orca'))
const gitignorePath = joinWorktreeRelativePath(repo.path, '.gitignore')
try {
const result = await fsProvider.readFile(gitignorePath)
if (!result.isBinary && !/^\.orca\/?$/m.test(result.content)) {
const separator = result.content.endsWith('\n') ? '' : '\n'View on GitHub (pinned to 1136503c6a)
Solutions
- Reconnect the SSH target, then retry the write.
- Guard the UI: if getSshFilesystemProvider(repo.connectionId) is falsy, disable Save and show a reconnect prompt.
- For local repos this path is not taken; ensure repo.connectionId is not stale.
Example fix
// before
await ipc.invoke('hooks:writeIssueCommand', { repoId, content, hostId })
// after
if (repo.connectionId && !getSshFilesystemProvider(repo.connectionId)) {
await promptReconnect(repo.connectionId)
}
await ipc.invoke('hooks:writeIssueCommand', { repoId, content, hostId }) Defensive patterns
Strategy: validation
Validate before calling
if (repo.connectionId && !getSshFilesystemProvider(repo.connectionId)) { await promptReconnect(repo.connectionId); return } Type guard
function hasRemoteFilesystem(connectionId: string | undefined): boolean {
return !connectionId || Boolean(getSshFilesystemProvider(connectionId))
} Try / catch
try { await ipc.invoke('hooks:writeIssueCommand', { repoId, content, hostId }) }
catch (e) {
if (/Remote filesystem unavailable/.test(String((e as Error).message))) await reconnectSsh(repo.connectionId)
else throw e
} Prevention
- Disable the issue-command Save button when the SSH provider is unavailable.
- Reconnect SSH before editing hooks on remote repos.
- Surface connection health in the UI before writes are attempted.
When it happens
Trigger: The SSH target dropped or was disconnected after the repo was opened, then the user edits the issue-command. Also when the SSH provider module is torn down during quit while a write is in flight.
Common situations: Network interruption to the SSH host, SSH agent/keys removed, host rebooted, or the connection was closed from another pane. Reconnecting usually restores the provider.
Related errors
- SSH target "${input.target.connectionId}" is not connected.
- SSH target did not connect: ${state.status}
- Remote connection dropped. Click Reconnect on the SSH target
- SSH Git provider is not available. Reconnect to this target
- SSH Git provider is not available. Reconnect to this target
AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12).
Data as JSON: /api/errors/a38394e7951a6b78.
Report an issue: GitHub.