Launch a machine with an attached volume

I’m trying to use Fly’s GraphQL api to launch a machine and attach a volume. I’ve looked through flyctl’s code to understand how the endpoint works, but the request to launch hangs for around 5 seconds and then returns with

SERVER_ERROR
You ran into an error connecting to the Fly API. If the error persists, keep this request ID to help Fly Support track it down: 01G6TVRKGB654R8A4MQ2ECXVMZ-iad

My LaunchMachineInput is

{
  "clientMutationId": null,
  "appId": "personal-fade-fbtidnsr",
  "organizationId": "X14ZNqpmoA4vDI0Y0D3VeJP3VqfODv",
  "id": null,
  "name": null,
  "region": null,
  "config": {
    "env": {
      "TAILSCALE_AUTHKEY": "<key_redacted>"
    },
    "init": {
      "exec": null,
      "entrypoint": null,
      "cmd": null,
      "tty": false
    },
    "image": "nebulatgs/fade-stamp:minimal",
    "services": [],
    "mounts": [
      {
        "volume": "<volume_id>",
        "path": "/data",
        "encrypted": true,
        "size_gb": 10
      }
    ],
    "metadata": null,
    "restart": null,
    "guest": {
      "cpu_kind": "shared",
      "cpus": 8,
      "memory_mb": 2048
    }
  }
}

This works perfectly as soon as I remove the mounts section.