All Products
Search
Document Center

Microservices Engine:Troubleshoot unexpected service provider calls

Last Updated:Mar 10, 2026

When a service consumer calls a service provider through Microservices Engine (MSE), the call may fail or reach an unintended provider. Use this guide to diagnose and fix two common symptoms:

  • No provider found: The consumer reports that no service provider is available or no service is found.

  • Stale IP address: After a provider restarts or is released, the consumer still calls the old IP address instead of the new one.

Why this happens

These symptoms typically occur for one of the following reasons:

  • The service provider is not registered with an MSE instance or is registered with an invalid environment.

  • A network exception or service consumer issue prevents the Nacos client from obtaining the latest IP address of the service provider.

  • The Nacos client has obtained the latest IP address, but the address is not used because routing rules, weight rules, or framework caching overrides the selection.

Diagnostic overview

Use the following decision tree to identify the root cause:

1. Is the provider listed in the MSE console with the correct IP?
   |-- No  --> The provider failed to register. See Step 1.
   |-- Old IP still shown --> The old instance was not deregistered. See Step 2.
   +-- Yes, correct IP shown
        |
        2. Was the IP successfully pushed to the consumer?
           |-- Yes --> A framework-level cache or routing rule is overriding the pushed IP. See Step 4.
           +-- No  --> A network or client issue blocked the push. See Step 5.

After a provider restarts, the new IP may take a few seconds to propagate to all consumers. This is normal eventually-consistent behavior in Nacos. If the issue resolves within a few seconds, no action is needed.

Step 1: Verify provider registration in the MSE console

Open the MSE console and confirm that the expected service provider is listed. Verify that the number of nodes and the IP addresses match your expectations. For details, see View service details.

If the provider is not listed, registration failed. Follow the steps in Handle the issue that the registration of a service provider fails to resolve it.

Step 2: Remove a stale IP address

If the MSE console still shows the old IP address of a provider that has been restarted or released, the old instance was not properly deregistered. Follow the steps in Handle the issue that the IP address of an unavailable service provider can still be viewed in the MSE console to clean up the stale entry.

Step 3: Check whether the IP was pushed to the consumer

If the MSE console shows the correct provider IP, confirm whether Nacos pushed the updated IP to the service consumer. Choose the method that matches your MSE edition and Nacos client version:

Professional edition with Nacos client 2.0.0 or later

Search the IP address push tracks of the provider or consumer and verify that the corresponding push records exist. If records are present, the push succeeded. For details, see Push tracking.

Professional edition 2.0.4.0 or later with Nacos client 2.0.0 or later

Open the Push monitoring tab and check whether Service push success rate is 100%. For details, see Use the Grafana dashboard.

Basic edition or earlier Nacos client versions

Get the Nacos client logs from the service consumer, search for the keyword current ips along with the service name, and compare the node count and IP addresses in the logs against the MSE console. If they match, the push succeeded. For details, see How do I obtain logs from a Nacos client?

Step 4: Fix framework-level caching or routing issues

If the push succeeded but the consumer still calls the wrong IP, the issue is at the application framework level. The Nacos client has the correct IP, but the framework is not using it.

Spring Cloud with Feign, LoadBalancer, or Ribbon

When the Spring Cloud framework uses a load-balancing component such as Feign, Spring Cloud LoadBalancer, or Ribbon, the latest provider IP from the Nacos client may not take effect immediately -- or may never take effect -- due to internal caching or routing rules. Investigate further based on the specific load-balancing component your application uses.

Dubbo 2.7.7 to 2.7.16 multi-subscription issue

Dubbo versions 2.7.7 through 2.7.16 have a known multi-subscription issue that can cause the latest pushed IP to be ignored. To fix this, choose one of the following options:

  • Upgrade Dubbo to version 2.7.17 or later.

  • Enable empty list protection. For details, see Empty list protection.

Step 5: Diagnose push failures

If the push was not confirmed as successful, check the Nacos client logs on the consumer side for the failure cause.

Timeout errors

If the logs contain timeout-related errors such as read time out or connected timeout, the consumer cannot reach the MSE Nacos instance over the network. Follow the steps in Handle the timeout issue of the connection between an application and an MSE Nacos instance to resolve it.

org.reflections toolkit conflict

If the Nacos client version is between 2.0.0 and 2.0.4 and the application uses the org.reflections toolkit, a dependency conflict may prevent push updates from being received. To fix this, choose one of the following options:

  • Pin org.reflections to version 0.9.11.

  • Upgrade the Nacos client to version 2.1.0 or later.

Common error reference

Error messageLikely causeAction
No service provider availableProvider not registered with MSESee Step 1
No service is foundProvider registered in wrong environmentSee Step 1
read time out / connected timeoutNetwork issue between consumer and MSE instanceSee Step 5: Timeout errors
Push records missingPush failure due to network or client issueSee Step 5

What's next