Remote files, processes and terminals

With remote execution over SSH set up, the files, commands and terminals of a chat are handled on the remote Linux or macOS computer while DataMind Oda stays on this computer. This page covers how that remote side behaves: files, commands, terminals, confinement, and the codes a failure can carry. The connection itself, and what to install, are in Remote execution over SSH.

Remote files

Important

After a dropped connection, check the remote computer before you repeat the work.

Remote commands

Remote terminals

The actions a terminal offers, and the notes they return, are described in Terminal tools.

Remote confinement

For what a blocked command looks like in the chat, and how a wider one-off retry is approved, see Command sandboxing and approvals.

Error codes

When a remote operation fails, Oda reports the code the remote side returned, unchanged. The common codes:

CodeWhat it tells you
FS_STALE_VERSIONA guarded replace was refused: the file changed since Oda read it. Read the file again, then repeat the change.
FS_SANDBOX_DENIEDThe remote confinement refused the file change, for example a change attempted under read-only.
FS_NOT_OBSERVEDThe remote file layer refused the operation and returned this code. Check the file on the remote computer, then retry.
FS_TOO_LARGEA whole read went past the remote side's 8 MiB budget. Read the file in parts.
FS_IO_ERRORAn I/O failure: the connection dropped, or a remote file operation Oda does not classify further failed, such as a watch. A dropped connection is not retried.
FS_ABORTEDThe operation was cancelled before it finished, and is not retried.
FS_NOT_FOUNDThe remote side does not have that file or folder.
SUBPROCESS_EXECUTABLE_NOT_FOUNDThe program is not on the remote computer; a lookup miss, reported apart from an SSH failure.
SANDBOX_UNAVAILABLEThe remote side could not apply the requested confinement, so the command was refused before it ran.

Connection-level failures, such as a connection that drops or is closed, are described with the connection in Remote execution over SSH.

Questions, answered

Why did a remote file change come back with FS_STALE_VERSION?

A guarded replace was refused: the file changed on the remote computer since Oda read it. Read the file again, then repeat the change.

Can Oda read a remote file that is larger than 8 MiB?

Yes, in parts. A whole read, or one window inside a remote file, is capped at 8 MiB; a read that would go past that budget is refused with FS_TOO_LARGE. Ask Oda to read the file in smaller windows.

Why is a remote file operation not retried after the connection drops?

Because Oda cannot know what completed on the remote computer before the connection dropped. A dropped connection during a file operation is reported as an I/O failure, the operation is not retried, and a change may already have been made. Check the remote computer before you repeat the work.

Does the end of a remote command mean everything it started has stopped?

No. A finished remote command reports its exit code, or the signal that ended it, but that does not prove that everything the program started has also stopped. Oda observes the true end separately: a wait for it resolves only when nothing is left.

Is it safe to stop the same remote process again?

Yes. Asking to stop the same remote process again changes nothing, even while an earlier stop is still in progress. If the remote side cannot confirm the stop, Oda reports SSH process cleanup could not be confirmed and does not claim the program stopped.

What does SSH terminal allocation failed and remote cleanup is unknown mean?

A remote terminal could not be allocated, and the remote side could not confirm that it cleaned up the half-made terminal. Treat the remote cleanup as unconfirmed, and check the remote computer before continuing.

What do idle, busy and unknown mean for a remote terminal?

They are what a remote terminal reports about its activity: idle, busy, or unknown when no answer has come back. Oda does not treat a missing answer as a quiet terminal.

What does SSH process terminated before launch acknowledgement mean?

A remote program stopped before its start was confirmed, so there is no running program for the command. Treat the run as failed and check the remote computer before retrying.