DiscoveryClient unable to refresh its cache! Status 404

Nils Breitmann picture Nils Breitmann · Mar 8, 2017 · Viewed 10.7k times · Source

I have set up Intershop Commerce Management 7.8 and everything runs fine, except I get constant errors in the error log file.

Eureka is running, I can access the Eureka UI using http://localhost:8760 The application server and Solr is listed and running.

The URL in eureka-client.properties is set to: http://localhost:8760/eureka

Any ideas what is wrong here?

Here some of the error entries:

[2017-03-07 10:39:10.865 +0000] ERROR localhost ES1 appserver0 [] [] com.netflix.discovery.DiscoveryClient [] [] [] [] "DiscoveryClient-CacheRefreshExecutor-0" DiscoveryClient_DEVELOPER-SOLRSERVER/localhost_appserver0 - was unable to refresh its cache! status = Bad status: 404 java.lang.RuntimeException: Bad status: 404
        at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1589)
        at com.netflix.discovery.DiscoveryClient.makeRemoteCallWithFollowRedirect(DiscoveryClient.java:1460)
        at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1443)
        at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1394)
        at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:1136)
        at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:1042)
        at com.netflix.discovery.DiscoveryClient.access$2100(DiscoveryClient.java:123)
        at com.netflix.discovery.DiscoveryClient$CacheRefreshThread.run(DiscoveryClient.java:1900)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

[2017-03-07 10:39:14.269 +0000] ERROR localhost ES1 appserver0 [] [] com.netflix.discovery.DiscoveryClient [] [] [] [] "DiscoveryClient-CacheRefreshExecutor-0" Can't contact any eureka nodes - possibly a security group issue? java.lang.RuntimeException: Bad status: 404
        at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1589)
        at com.netflix.discovery.DiscoveryClient.makeRemoteCallWithFollowRedirect(DiscoveryClient.java:1460)
        at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1443)
        at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1394)
        at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:1136)
        at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:1042)
        at com.netflix.discovery.DiscoveryClient.access$2100(DiscoveryClient.java:123)
        at com.netflix.discovery.DiscoveryClient$CacheRefreshThread.run(DiscoveryClient.java:1900)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

[2017-03-07 10:39:14.270 +0000] ERROR localhost ES1 appserver0 [] [] com.netflix.discovery.DiscoveryClient [] [] [] [] "DiscoveryClient-CacheRefreshExecutor-0" DiscoveryClient_DEVELOPER-APPSERVER/localhost_ES1_appserver0 - was unable to refresh its cache! status = Bad status: 404 java.lang.RuntimeException: Bad status: 404
        at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1589)
        at com.netflix.discovery.DiscoveryClient.makeRemoteCallWithFollowRedirect(DiscoveryClient.java:1460)
        at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1443)
        at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1394)
        at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:1136)
        at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:1042)
        at com.netflix.discovery.DiscoveryClient.access$2100(DiscoveryClient.java:123)
        at com.netflix.discovery.DiscoveryClient$CacheRefreshThread.run(DiscoveryClient.java:1900)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Answer

Stefan picture Stefan · Mar 8, 2017

There is a simple solution for this problem. The eureka client is just a bit fussy: Use 'http://localhost:8760/eureka/' instead of 'http://localhost:8760/eureka'. I hope that helps.