# `Fil.UnsupportedError`
[🔗](https://github.com/pehbehbeh/fil/blob/v0.1.0/lib/fil/exceptions.ex#L112)

The disk can't do this operation. Attach a plugin or use another disk.

`:op` is the operation. `Fil` returns it with `reason: :no_callback` for a URL on an adapter without that callback
(attach `Fil.Plugin.URL`), and S3 with `reason: :missing_credentials` for a signed URL on a disk without credentials.

    iex> disk = Fil.disk(adapter: Fil.Adapter.Memory)
    iex> {:error, error} = Fil.url(disk, "a.txt")
    iex> Exception.message(error)
    ~s|could not build a URL for "a.txt" on #Fil.Disk<memory>: not supported by this disk (:no_callback)|

# `t`

```elixir
@type t() :: %Fil.UnsupportedError{
  __exception__: term(),
  disk: Fil.Disk.t() | nil,
  op: Fil.Op.name() | nil,
  path: String.t() | nil,
  reason: term()
}
```

