@Test
  void canOverrideErrorDecoder() throws Throwable {
    server.enqueue(new MockResponse().setResponseCode(400).setBody("foo"));

    final TestInterfaceAsync api =
        newAsyncBuilder()
            .errorDecoder(new IllegalArgumentExceptionOn400())
            .target("http://localhost:" + server.getPort());

    Throwable exception = assertThrows(IllegalArgumentException.class, () -> unwrap(api.post()));
    assertThat(exception.getMessage()).contains("bad zone name");
  }
The type of a parameter value may not be the desired type to encode as. Prefer the interface
type.
okhttp/src/test/java/feign/okhttp/OkHttpClientAsyncTest.java