The reason is that in your .observe() method, you passed a fragment as the lifecycle owner. What should have been passed is the viewLifecycleOwner object of the fragment
viewModel.livedata.observe(viewLifecycleOwner, Observer {
// Do your routine here
})