Problem: Mount fails with “No such file or directory”
archil mount. Create it first:
Problem: Mount fails with permission denied
The Archil client cannot authenticate against the disk. This usually means the disk token is wrong or has been regenerated, or the IAM role is not listed as an authorized disk user.Problem: Mount hangs or times out
The client cannot reach the Archil control plane. Common causes are a wrong region, a network connectivity issue, or DNS resolution failure.Problem: Mount fails because the client is no longer supported
If the mount fails withthis version of the Archil client is no longer supported by the server, your client is older
than the minimum version the server, your organization, or the disk requires. Upgrade the client with archil upgrade
or rerun the installer, then retry the mount.
Problem: Files not appearing in S3
This is expected behavior. Archil provides eventual synchronization consistency between the disk and the backing data source. Writes are durable on the disk as soon as they are committed, and Archil copies them to S3 in the background, usually tens of seconds after a file’s last write. A file that keeps changing is copied within about 10 minutes. You can’t force the copy. If your S3 clients need to see writes immediately, use the Archil S3 API, which reads the disk directly.Problem: Another client doesn’t see my changes
Another client reads a change once it has reached the disk and the other client isn’t answering from an older cache entry. Check both sides:- On the writer, run
fsyncon the file, orarchil sync /mnt/archilfor the whole mount. On exclusive and shared mounts,closedoesn’t wait for writes to reach the disk. - On the reader, open the file again; opening a file checks it with the disk. A new file can still be missing from a
directory listing the reader cached, for up to five minutes by default. Run
archil invalidate-cache /mnt/archilto drop the reader’s cache, or lower the listing lifetime witharchil set-cache-expiry.
Problem: Another client cannot write to files
Only one Archil client can have write ownership (a “delegation”) over any given file or directory at a time. When a client mounts without--shared or --conditional, it checks out the entire root, blocking all other clients from writing. A second mount without --shared, --conditional, or --read-only will fail outright, since the first client holds the root delegation — pass --shared or --conditional on every mount to allow concurrent writes, or --read-only on the other clients if only one client needs to write.
Solutions:
Problem: Writes fail on a conditional mount
On a conditional mount, thearchil client buffers recent writes and sends them
to the disk in the background, so a write can succeed and then fail when it’s sent. There are two common causes:
- Another client deleted the file. Writes to the file that hadn’t reached the disk are lost. Reads, writes,
fsync, andcloseon file descriptors still open on that file returnESTALE. The rest of the mount keeps working. - Another client checked out the file or a directory above it with
archil checkout, or mounted the disk without--sharedor--conditional. The mount becomes read-only: writes that hadn’t reached the disk are lost, further writes returnEROFS, andfsyncandclosereturnEIO. Reads keep working.
EROFS, without
affecting the rest of the mount.
To recover a mount that has become read-only, unmount it and mount the disk again:
archil checkin or unmounts. To avoid this, don’t check out paths that clients in
conditional mode are still writing to.
Problem: Permission denied when accessing files
This is expected. The Archil FUSE client mounts as root, so all files start with root ownership.Problem: There’s a .archil directory at the root of my mount
Every Archil disk has a hidden .archil/ directory at its root. Archil uses it to hold data that still needs to exist on the disk but is no longer reachable through the normal filesystem — most commonly, files that have been unlinked while a client still has them open. POSIX requires those files to keep working until the last handle is closed, so Archil parks them under .archil/ until they can be reclaimed.
The directory and its contents synchronize back to your backing S3 bucket along with the rest of the disk, so you’ll see a .archil/ prefix there as well. The exact layout is an implementation detail and may change between releases. Treat it as opaque: don’t read from, write to, or delete anything inside .archil/, either on the mount or in S3.
Problem: Data not appearing after writing to S3 directly
Objects created directly in S3 (or another backing store) are subject to eventual synchronization consistency. Archil lists a directory in the bucket again in the background when the directory is read and its listing is more than five minutes old, so it can take a few minutes for new objects to appear on the Archil disk. A mounted client also caches directory listings. To stop it from adding its own delay on top, reduce the directory cache expiry:Lower cache expiry values improve freshness but increase the number of requests to the Archil server, which may affect read performance.
Problem: SDK connection fails
The TypeScript SDK cannot connect to the disk. Check the following:- Credentials — Ensure a valid disk token is set in
ARCHIL_DISK_TOKEN, or that IAM credentials are available (e.g., running on EC2 with an attached role). Note that a disk token is different from a Control Plane API key. - Disk name — Use the owner-qualified format
org/disk-name, not just the disk name alone. - Region — The region string must match exactly (e.g.,
aws-us-east-1, notus-east-1). - Node.js version — The native module requires Node.js 18 or later.