Failed recovery - failed to fetch index version after copying it over error


I'm running two nodes, each node is on a different server.

I have a problem with 4 shards

here's the error:


"state": "UNASSIGNED",
"primary": true,
"node": null,
"relocating_node": null,
"shard": 1,
"index": "edata_gb",
"version": 555,
"unassigned_info": {
    "reason": "ALLOCATION_FAILED",
    "at": "2016-10-27T17:44:16.452Z",
    "details": "failed recovery, failure IndexShardRecoveryException[failed to fetch index version after copying it over]; nested: CorruptIndexException[i_o_exception: failed engine (reason: [merge failed]) (resource=preexisting_corruption)]; nested: NotSerializableExceptionWrapper[i_o_exception: failed engine (reason: [merge failed])]; nested: CorruptIndexException[checksum failed (hardware problem?) : expected=70acc986 actual=3699fd13 (resource=BufferedChecksumIndexInput(NIOFSIndexInput(path="/var/lib/elasticsearch/cluster01/nodes/0/indices/edata_gb/1/index/_10b3k.cfs") [slice=_10b3k.fdt]))]; "


i've no idea what this error means or how to fix it?

I've tried upgrading elastic search to version 2.4.1