OkHttp gets the request but observing viewmodel runs into error. Help

Hello, I am trying to get my app to get news from this API I have and the thing is, I can see through OkHttp that the API request itself works, since it’s there on the logs. However, when I observe the viewmodel so that I can see the news reflected on my activity, this goes straight into error and I cannot possibly understand why. Any help as to why this is happening would be greatly appreciated.

This is the service:

interface JapaneseService {
    @GET("/v2/top-headlines?country=jp&apiKey=77acc490875643c5b2328fb615e0cf83")
    suspend fun jpNews(): Response<ApiResponse<JapaneseResponse>>
}

This is the repository:

class JapaneseRepository @Inject constructor(
    private val remote: JapaneseDataSource
) {
    suspend fun jpNews() =
        remote.getJpNews()
}

This is the data source:

class JapaneseDataSource @Inject constructor(private val japaneseService: JapaneseService) :
    BaseDataSource() {

    suspend fun getJpNews() = getResult { japaneseService.jpNews() }
}

This is the base data source that shows in the log a response code of 200 and no message at all when I log the error:

abstract class BaseDataSource {

    protected suspend fun <T> getResult(call: suspend () -> Response<ApiResponse<T>>): Resource<T> {
        try {
            val response = call()
            if(response.isSuccessful) {
                val body = response.body()?.data
                if(body != null) return Resource.success(body)
            }
            Log.d("ERROR RESP","${response.code()}: ${response.message()}")
            return Resource.error("${response.code()}: ${response.message()}")
        } catch (e: Exception) {
            return Resource.error(e.message ?: "Generic error")
        }
    }
}

data class Resource<out T>(val status: Status, val data: T?, val message: String?) : Serializable {

    enum class Status {
        SUCCESS,
        ERROR,
        LOADING
    }

    companion object {
        fun <T> success(data: T?): Resource<T> {
            return Resource(
                Status.SUCCESS,
                data,
                null
            )
        }

        fun <T> error(message: String, data: T? = null): Resource<T> {
            return Resource(
                Status.ERROR,
                data,
                message
            )
        }

        fun <T> loading(data: T? = null): Resource<T> {
            return Resource(
                Status.LOADING,
                data,
                null
            )
        }
    }

    fun isSuccessful() = status == Status.SUCCESS

    fun isError() = status == Status.ERROR

    fun isLoading() = status == Status.LOADING
}

This is the viewmodel:

@HiltViewModel
class JapaneseViewModel  @Inject constructor(
    private val japaneseRepository: JapaneseRepository
): ViewModel(){

    private val _japaneseResponse = MutableLiveData<Resource<JapaneseResponse>>()
    val japaneseResponse: LiveData<Resource<JapaneseResponse>> = _japaneseResponse

    init{
        getJapaneseResponse()
    }

    fun getJapaneseResponse() = viewModelScope.launch(Dispatchers.Main) {
        _japaneseResponse.value = Resource.loading()
        val result = withContext(Dispatchers.IO) {
            japaneseRepository.jpNews()
        }
        _japaneseResponse.value = result
    }
}
This is the activity:

@AndroidEntryPoint
class JapaneseActivity : AppCompatActivity() {
    private lateinit var binding: ActivityJapaneseBinding
    private val japaneseViewModel by viewModels<JapaneseViewModel>()
    private lateinit var japaneseAdapter: JapaneseAdapter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityJapaneseBinding.inflate(layoutInflater)
        setContentView(binding.root)

        japaneseViewModel.japaneseResponse.observe(this, {
            when(it.status){
                Resource.Status.LOADING -> { }
                Resource.Status.SUCCESS -> {
                    japaneseAdapter = it.data?.let { it1 -> JapaneseAdapter(it1.Articles) }!!
                    binding.rvNews.adapter = japaneseAdapter
                }
                Resource.Status.ERROR -> { Log.d("ERROR","ERROR RAISED") }
            }
        })
    }
}

The logs:

I/okhttp.OkHttpClient: {"status":"ok","totalResults":30,"articles":[{"source":{"id":null,"name":"Fashionsnap.com"},"author":null,"title":"アートディレクター仲條正義が死去、資生堂パーラーのパッケージなどデザイン - FASHIONSNAP.COM","description":"アートディレクターの仲條正義(なかじょうまさよし)が、10月26日に肝臓がんのため逝去した。享年88。資生堂パーラーのロゴタイプやパッケージデザインなどを手掛けたことでも知られている。仲條は1933年東京生まれ。東京藝術大学美術学部を卒業後、資生堂宣伝部とデスカを経て、1961年に自身のデザイ...","url":"https://www.fashionsnap.com/article/2021-10-27/nakajou-masayoshi/","urlToImage":"https://cld.fashionsnap.com/image/upload/c_fill,q_auto
<-- END HTTP (16293-byte body)
D/ERROR RESP: 200: 
D/ERROR: ERROR