{"action":"created","issue":{"url":"https://api.github.com/repos/Netflix/Prana/issues/18","labels_url":"https://api.github.com/repos/Netflix/Prana/issues/18/labels{/name}","comments_url":"https://api.github.com/repos/Netflix/Prana/issues/18/comments","events_url":"https://api.github.com/repos/Netflix/Prana/issues/18/events","html_url":"https://github.com/Netflix/Prana/issues/18","id":107569554,"number":18,"title":"Prana service breaks Eureka console","user":{"login":"turick","id":4421339,"avatar_url":"https://avatars.githubusercontent.com/u/4421339?v=3","gravatar_id":"","url":"https://api.github.com/users/turick","html_url":"https://github.com/turick","followers_url":"https://api.github.com/users/turick/followers","following_url":"https://api.github.com/users/turick/following{/other_user}","gists_url":"https://api.github.com/users/turick/gists{/gist_id}","starred_url":"https://api.github.com/users/turick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/turick/subscriptions","organizations_url":"https://api.github.com/users/turick/orgs","repos_url":"https://api.github.com/users/turick/repos","events_url":"https://api.github.com/users/turick/events{/privacy}","received_events_url":"https://api.github.com/users/turick/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-09-21T18:20:59Z","updated_at":"2015-10-07T14:30:40Z","closed_at":null,"body":"I just downloaded the Prana zip file and tried to fire it up.  Perhaps this should be a separate issue, but no matter what command line arguments I provided, it wouldn't use my external config file and kept defaulting to the config file bundled in the Prana-0.0.1.jar file.  After unzipping the jar, editing the config to point to my Eureka server, then zipping it back up and replacing the jar, Prana successfully registered my service.  Going to http://localhost:8761/eureka/apps, I see all of my registered apps, however if I go to the dashboard at http://localhost:8761/, it get a pretty nasty error.  As soon as I take down my Prana service, the Eureka dashboard displays properly again.  I'm not sure if this is an issue with Prana or Eureka, but I don't see this problem with any of the spring cloud services I've developed.  Here is the error:\r\n\r\nFreeMarker template error (DEBUG mode; use RETHROW in production!): The following has evaluated to null or missing: ==> amiCount.key [in template \"eureka/status.ftl\" at line 35, column 26] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to be legally refer to something that's null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace (\"~\" means nesting-related): - Failed at: ${amiCount.key} [in template \"eureka/status.ftl\" at line 35, column 24] ---- Java stack trace (for programmers): ---- freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:116) at freemarker.core.EvalUtil.coerceModelToString(EvalUtil.java:346) at freemarker.core.Expression.evalAndCoerceToString(Expression.java:82) at freemarker.core.DollarVariable.accept(DollarVariable.java:40) at freemarker.core.Environment.visit(Environment.java:312) at freemarker.core.MixedContent.accept(MixedContent.java:62) at freemarker.core.Environment.visitByHiddingParent(Environment.java:333) at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:159) at freemarker.core.Environment.visitIteratorBlock(Environment.java:559) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:67) at freemarker.core.Environment.visit(Environment.java:312) at freemarker.core.MixedContent.accept(MixedContent.java:62) at freemarker.core.Environment.visitByHiddingParent(Environment.java:333) at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:159) at freemarker.core.Environment.visitIteratorBlock(Environment.java:559) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:67) at freemarker.core.Environment.visitByHiddingParent(Environment.java:333) at freemarker.core.IfBlock.accept(IfBlock.java:48) at freemarker.core.Environment.visit(Environment.java:312) at freemarker.core.MixedContent.accept(MixedContent.java:62) at freemarker.core.Environment.visit(Environment.java:312) at freemarker.core.Environment.process(Environment.java:290) at freemarker.template.Template.process(Template.java:312) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:367) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:284) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:234) at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1244) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:858) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration$ApplicationContextHeaderFilter.doFilterInternal(EndpointWebMvcAutoConfiguration.java:295) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:102) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:68) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)\r\nWhitelabel Error Page\r\n\r\nThis application has no explicit mapping for /error, so you are seeing this as a fallback.\r\nMon Sep 21 13:53:03 EDT 2015\r\nThere was an unexpected error (type=OK, status=200).\r\nThe following has evaluated to null or missing: ==> amiCount.key [in template \"eureka/status.ftl\" at line 35, column 26] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to be legally refer to something that's null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace (\"~\" means nesting-related): - Failed at: ${amiCount.key} [in template \"eureka/status.ftl\" at line 35, column 24] ----\r\n\r\n![eureka error](https://cloud.githubusercontent.com/assets/4421339/10000646/113ad016-6063-11e5-9829-0665de3dc627.png)\r\n"},"comment":{"url":"https://api.github.com/repos/Netflix/Prana/issues/comments/146211511","html_url":"https://github.com/Netflix/Prana/issues/18#issuecomment-146211511","issue_url":"https://api.github.com/repos/Netflix/Prana/issues/18","id":146211511,"user":{"login":"Prateek479","id":3468712,"avatar_url":"https://avatars.githubusercontent.com/u/3468712?v=3","gravatar_id":"","url":"https://api.github.com/users/Prateek479","html_url":"https://github.com/Prateek479","followers_url":"https://api.github.com/users/Prateek479/followers","following_url":"https://api.github.com/users/Prateek479/following{/other_user}","gists_url":"https://api.github.com/users/Prateek479/gists{/gist_id}","starred_url":"https://api.github.com/users/Prateek479/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Prateek479/subscriptions","organizations_url":"https://api.github.com/users/Prateek479/orgs","repos_url":"https://api.github.com/users/Prateek479/repos","events_url":"https://api.github.com/users/Prateek479/events{/privacy}","received_events_url":"https://api.github.com/users/Prateek479/received_events","type":"User","site_admin":false},"created_at":"2015-10-07T14:30:40Z","updated_at":"2015-10-07T14:30:40Z","body":"Any Update on this ...??"}}