After analysing my code, I found that the problem was the logic I was trying to implement - the link inside the Future<CategoriesResponse> getCategories() should have been the link to the server that formats data to blocks that the app is expecting, and not to the JSON data source.