alibaba/nacos · error · RuntimeException

Informer serviceInformer sync timed out

Error message

Informer serviceInformer sync timed out

What it means

Error "Informer serviceInformer sync timed out" thrown in alibaba/nacos.

Solutions

  1. Review the input and runtime state for k8s service informer sync timeout, correct the reported problem, and retry.

When it happens

Trigger: Thrown at k8s-sync/src/main/java/com/alibaba/nacos/k8s/sync/K8sSyncServer.java:290 when the library encounters an invalid state.

Common situations: The Kubernetes service informer failed to sync within the timeout.

Understand the failure class


AI-assisted analysis of alibaba/nacos@9b989acdf1 (2026-08-14). Data as JSON: /api/errors/6292db1fc3b115f0. Report an issue: GitHub.

Appendix: source

Thrown at k8s-sync/src/main/java/com/alibaba/nacos/k8s/sync/K8sSyncServer.java:290

                        instanceOperatorClient.listAllInstances(namespace, serviceName);
                    unregisterInstances(deleteIpSet, namespace, serviceName, oldInstanceList);
                    Loggers.MAIN.info("delete instances, namespace:" + namespace + ", serviceName: "
                        + serviceName);
                } catch (NacosException e) {
                    Loggers.MAIN.info("delete instances fail, namespace:" + namespace
                        + ", serviceName: " + serviceName);
                }
            }
        });
        
        // Wait until the cache of each informer has been fully synced before proceeding.
        // This ensures that the local cache contains the latest and complete resource data.
        long timeout = 30000L;
        long startTime = System.currentTimeMillis();
        serviceInformer.run();
        while (!serviceInformer.hasSynced()) {
            if (System.currentTimeMillis() - startTime > timeout) {
                throw new RuntimeException("Informer serviceInformer sync timed out");
            }
            ThreadUtils.sleep(100L);
        }
        startTime = System.currentTimeMillis();
        endpointInformer.run();
        while (!endpointInformer.hasSynced()) {
            if (System.currentTimeMillis() - startTime > timeout) {
                throw new RuntimeException("Informer endpointInformer sync timed out");
            }
            ThreadUtils.sleep(100L);
        }
    }
    
    /**
     * create instance.
     *
     * @param ip instance ip
     * @param targetPort instance port

View on GitHub (pinned to 9b989acdf1)