title: Apache ignite client node reconnect getting error org.apache.ignite.internal.processors.cache.CacheStoppedException: Failed to perform cache operation
body: <p>I have started ignite server as well as app as client node using the following configuration</p>
  <pre><code>public IgniteConfigurer config() {
  return cfg -&gt; {
      // The node will be started as a client node.
      cfg.setClientMode(true);
      // Classes of custom Java logic will be transferred over the wire from this app.
      cfg.setPeerClassLoadingEnabled(false);
      // Setting up an IP Finder to ensure the client can locate the servers.
      final TcpDiscoveryMulticastIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();
      ipFinder.setAddresses(Arrays.asList(ip));
      cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(ipFinder));
      // Cache Metrics log frequency. If 0 then log print disable.
      cfg.setMetricsLogFrequency(Integer.parseInt(cacheMetricsLogFrequency));
      // setting up storage configuration
      final DataStorageConfiguration storageCfg = new DataStorageConfiguration();
      storageCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(true);
      storageCfg.setStoragePath(cacheStorage);
      // setting up data region for storage
      final DataRegionConfiguration defaultRegion = new DataRegionConfiguration();
      defaultRegion.setName(cacheDefaultRegionName);
      // Sets initial memory region size. When the used memory size exceeds this value, new chunks of memory will be allocated
      defaultRegion.setInitialSize(Long.parseLong(cacheRegionInitSize));
      storageCfg.setDefaultDataRegionConfiguration(defaultRegion);
      cfg.setDataStorageConfiguration(storageCfg);
      cfg.setWorkDirectory(cacheStorage);
      final TcpCommunicationSpi communicationSpi = new TcpCommunicationSpi();
      // Sets message queue limit for incoming and outgoing messages
      communicationSpi.setMessageQueueLimit(Integer.parseInt(cacheTcpCommunicationSpiMessageQueueLimit));
      cfg.setCommunicationSpi(communicationSpi);
      final CacheCheckpointSpi cpSpi = new CacheCheckpointSpi();
      cfg.setCheckpointSpi(cpSpi);
      final FifoQueueCollisionSpi colSpi = new FifoQueueCollisionSpi();
      // Execute all jobs sequentially by setting parallel job number to 1.
      colSpi.setParallelJobsNumber(Integer.parseInt(cacheParallelJobs));
      cfg.setCollisionSpi(colSpi);
      // set failure handler for auto connection if ignite server stop/starts.
      cfg.setFailureHandler(new StopNodeFailureHandler());
  };
  </code></pre>
  <p>}</p>
  <p>everything working fine. Now I have stopped ignite server and again restart ignite server. After restarting ignite server When I do any cache operation on I am getting error like</p>
  <pre><code>Caused by: class org.apache.ignite.internal.processors.cache.CacheStoppedException: Failed to perform cache operation (cache is stopped): mycache1
  ... 63 more
  </code></pre>
  <p>When I see ignite server logs it shows me the client is connected. See below logs</p>
  <pre><code>[17:25:41]   ^-- Baseline [id=0, size=1, online=1, offline=0]
  [17:25:42] Topology snapshot [ver=2, locNode=ea964803, servers=1, clients=1, state=ACTIVE, CPUs=8, offheap=6.3GB, heap=4.5GB]
  [17:25:42]   ^-- Baseline [id=0, size=1, online=1, offline=0]
  </code></pre>
  <p>So why it not allowed to perform any cache operation through the application which is running as a client node?.</p>