code: @Nonnull
      public static ApiError parseError(@Nullable String errorBody, int statusCode, @Nullable String message) {
          if (errorBody == null) {
              return new ApiError(null, statusCode, message);
          }
  
          Moshi moshi = new Moshi.Builder().build();
          JsonAdapter<CompatibilityApiError> oldApiErrorJsonAdapter = moshi.adapter(CompatibilityApiError.class).failOnUnknown();
          try {
               return new ApiError(oldApiErrorJsonAdapter.fromJson(errorBody), statusCode);
          } catch (IOException | JsonDataException exception) {
              // Not old type of error, move on
          }
  
          JsonAdapter<ApiError> apiErrorJsonAdapter = moshi.adapter(ApiError.class).failOnUnknown();
          try {
              return apiErrorJsonAdapter.fromJson(errorBody);
          } catch (IOException | JsonDataException exception) {
              return new ApiError(null, statusCode, "Unknown Error");
          }
      }
docs: Parses an error body and code into an {@link ApiError}.
  
  @param errorBody the error body from the response.
  @param statusCode the status code from the response.
  @param message the message from the response.
  @return the parsed {@link ApiError}.