I am implementing a taxonmy based navigation in SDL Web 8.5 with DXA 2.0. According to the documentation, I have created a category keyword with [Navigation] in its title. [![enter image description here][1]][1] [1]: https://i.sstatic.net/BTK1N.jpg I have published this Category and Keyword as well. In Unity.config, I have changed the mapping for INavigationProvider from Static to Dynamic as well. <type type="INavigationProvider" mapTo="DynamicNavigationProvider"> <lifetime type="singleton" /> </type> I expect to see NavigationLinks model to be populated. However, it never happens. I put some code in try and catch to see what is the exception. public static NavigationLinks GetDynamicNavigationLinks(this HtmlHelper helper,string requestUrlPath,Localization localization) { try { INavigationProvider navigationProvider = SiteConfiguration.NavigationProvider; var navigationLinks = navigationProvider.GetTopNavigationLinks(requestUrlPath, localization); return navigationLinks; } catch(Exception exception) { throw exception; } } The exception is as follows: 2018-07-20 09:47:49,337 [9] ERROR - DXA Model Service returned an unexpected response. Sdl.Web.Common.DxaException: DXA Model Service returned an unexpected response. ---> Sdl.Web.ModelService.ModelServiceException: DXA Model Service returned an unexpected response from request 'http://webcmsnd.[domainName].org:8998/api/navigation/17' of . ---> System.ArgumentNullException: Value cannot be null. Parameter name: value at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) at Sdl.Web.ModelService.ModelServiceClient.PerformRequest[T](IModelServiceRequest request) --- End of inner exception stack trace --- at Sdl.Web.ModelService.ModelServiceClient.PerformRequest[T](IModelServiceRequest request) at Sdl.Web.Tridion.ModelService.DefaultModelServiceProvider.GetSitemapItem(Localization localization) --- End of inner exception stack trace --- at Sdl.Web.Tridion.ModelService.DefaultModelServiceProvider.GetSitemapItem(Localization localization) at Sdl.Web.Tridion.Navigation.ModelServiceImpl.DynamicNavigationProvider.<>c__DisplayClass2_0.<GetNavigationModel>b__0() at Sdl.Web.Tridion.Caching.CacheProvider.GetOrAdd[T](String key, String region, Func`1 addFunction, IEnumerable`1 dependencies) at Sdl.Web.Tridion.Navigation.ModelServiceImpl.DynamicNavigationProvider.GetNavigationModel(Localization localization) at Sdl.Web.Tridion.Navigation.ModelServiceImpl.DynamicNavigationProvider.GetBreadcrumbNavigationLinks(String requestUrlPath, Localization localization) at Sdl.Web.Tridion.Navigation.DynamicNavigationProvider.GetBreadcrumbNavigationLinks(String requestUrlPath, Localization localization) at Sdl.Web.Mvc.Controllers.NavigationController.Navigation(EntityModel entity, String navType, Int32 containerSize) at lambda_method(Closure , ControllerBase , Object[] ) at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) When I make the Get request to the Navigation API however, I get the data: Get -> http://webcmsnd.[domainName].org:8998/api/navigation/17 { "Id":"t25583", "Type":"TaxonomyNode", "Title":"Dynamic [Navigation]", "OriginalTitle":"Dynamic [Navigation]", "Visible":false, "Items":[ { "$type":"TaxonomyNodeModelData", "Id":"t25583-k232401", "Type":"TaxonomyNode", "Title":"Home", "OriginalTitle":"000 Home", "Visible":false, "Items":[ { "$type":"TaxonomyNodeModelData", "Id":"t25583-k232404", "Type":"TaxonomyNode", "Title":"Articles", "OriginalTitle":"010 Articles", "Visible":false, "Items":[ ], "Key":"010 Articles", "HasChildNodes":false, "Description":"Articles", "IsAbstract":false, "ClassifiedItemsCount":0 } ], "Key":"000 Home", "HasChildNodes":true, "Description":"Home", "IsAbstract":false, "ClassifiedItemsCount":0 }, { "$type":"TaxonomyNodeModelData", "Id":"t25583-k232402", "Type":"TaxonomyNode", "Title":"Resource", "OriginalTitle":"010 Resource", "Visible":false, "Items":[ ], "Key":"010 Resource", "HasChildNodes":false, "Description":"Resource", "IsAbstract":false, "ClassifiedItemsCount":0 }, { "$type":"TaxonomyNodeModelData", "Id":"t25583-k232403", "Type":"TaxonomyNode", "Title":"News", "OriginalTitle":"020 News", "Visible":false, "Items":[ ], "Key":"020 News", "HasChildNodes":false, "Description":"News", "IsAbstract":false, "ClassifiedItemsCount":0 } ], "Key":"", "HasChildNodes":false, "Description":"", "IsAbstract":true, "ClassifiedItemsCount":0 } My questions are: 1. What is the root cause of this exception? How can I resolve it? 2. How can I customize the category keyword navigation to add customized fields and publishing them as JSON?