Skip to content

Commit a75c6d8

Browse files
committed
docs(sandchest): document writable paths, image availability, and network troubleshooting
1 parent aaa07e0 commit a75c6d8

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

skills/sandchest/references/troubleshooting.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,30 @@ Fixes:
3737
- Narrow the upload scope.
3838
- Exclude generated directories and dependency folders.
3939

40+
## Writable Paths
41+
42+
The sandbox root filesystem uses an overlay mount. The guest agent runs with
43+
ProtectSystem=strict, with explicit ReadWritePaths for user-writable directories.
44+
45+
Writable directories:
46+
- `/work` (primary workspace — default for uploads, clones, and exec cwd)
47+
- `/root` (root user home)
48+
- `/tmp` and `/var/tmp` (ephemeral scratch space)
49+
- `/home` (user home directories)
50+
51+
Use `/work` as the default destination for uploads and clones.
52+
53+
## Image Availability
54+
55+
Only `sandchest://ubuntu-22.04/base` is currently available. Do not request
56+
node-22, bun, python-3.12, or go-1.22 images unless they have been explicitly
57+
provisioned on the target node.
58+
59+
Install toolchains manually in the base image:
60+
- Node.js: `curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && apt-get install -y nodejs`
61+
- Bun: `curl -fsSL https://bun.sh/install | bash`
62+
- Python 3.12: `apt-get install -y python3.12 python3.12-venv`
63+
4064
## Directory Upload Failed On Extraction
4165

4266
Bulk upload is not transactional. Partial files may remain.
@@ -46,6 +70,29 @@ Fixes:
4670
- Destroy the failed fork and retry from the checkpoint.
4771
- Check whether the archive contains links or unsupported entry types.
4872

73+
## Upload Dir Fails With Symlinks
74+
75+
The sandbox_upload_dir tool filters out directory symlinks and broken symlinks
76+
automatically for git repos. If you still get symlink errors:
77+
78+
Fixes:
79+
- Ensure the MCP server dist is rebuilt and the process is restarted.
80+
- Use the exclude parameter to skip problematic paths.
81+
- For public repos, prefer sandbox_git_clone over sandbox_upload_dir.
82+
83+
## Sandbox Has No Network
84+
85+
If sandbox_git_clone or package install commands fail with network errors:
86+
87+
Possible causes:
88+
- NAT/iptables rules not applied on the host node.
89+
- Outbound interface mismatch (SANDCHEST_OUTBOUND_IFACE).
90+
- DNS resolution failure.
91+
92+
Workarounds:
93+
- Use sandbox_upload_dir to transfer code locally instead of cloning.
94+
- Upload pre-built dependencies via sandbox_upload.
95+
4996
## Private Repo Clone Not Supported Yet
5097

5198
Sandchest does not yet support safe server-side credential injection for clone helpers.

0 commit comments

Comments
 (0)