# FUSE truncate

> Tag 18: the server relays an ask of the container’s proxy that sets the length of a file of a mount the client serves live, by the mount’s id and the entry’s path; the client answers with exactly one channel response, which the server relays to the proxy.

Canonical: https://protocol.diverge.network/2.3.0/endpoints/containers-agents-run/server/fuse-truncate/
Specification revision: 2.3.0

The server opens this channel when a FUSE mount's scope on the
container's proxy carries the ask that sets the length of a file of a mount the client serves live.
The ask is relayed with the mount's `id` put in front of it — the
mount's scope is the mount, and its asks carry no id — and otherwise
verbatim; the client's one answer is relayed back.

- **The request.** The tag byte `18` followed by the ask in the form
  the [Container Proxy Endpoints](/2.3.0/container-proxy-endpoints/) layer
  defines for it, the mount's `id` added.
  [Request](/2.3.0/endpoints/containers-agents-run/server/fuse-truncate/request/) states its form.
- **The response.** Exactly one channel response and the channel
  response finish. [Response](/2.3.0/endpoints/containers-agents-run/server/fuse-truncate/response/)
  states the sequence.
- **The conduit.** The server relays the one channel response onto
  the mount's channel as one channel response and finishes it. The
  server does not read the ask or the answer, and does not send the
  ask twice.
- **Refusal is the client's.** A client that answers this ask with an error refuses the change, and the proxy reports the operation to the program as failed. A client whose volume is read only answers with the read-only byte, and the proxy reports the operation to the program as a read-only filesystem. The server relays the answer and decides nothing.
- **A file mount.** For a mount of `fuse_file_mounts`, the path of the ask is empty.
