A shard may not be a donor or recipient of a chunk if there are any outstanding deletes of previous migration. That way, tests, which move chunks back and forth multiple times may occasionally fail. Such tests should be made to pass _waitForDelete: true, so that the move chunk operation will wait for the range to be deleted.
Only seen this once so far.
[js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.088+0000 s20022| 2015-10-03T15:06:07.088+0000 I SHARDING [conn1] moveChunk result: { cause: { ok: 0.0, errmsg: "can't accept new chunks because there are still 1 deletes from previous migration", code: 125 }, ok: 0.0, errmsg: "moveChunk failed to engage TO-shard in the data transfer: :: caused by :: can't accept new chunks because there are still 1 deletes from previous migration", code: 125 } [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.151+0000 assert: [null] != [{ "_id" : ObjectId("560feedf3a395ff60c181637"), "x" : 200, "y" : 1 }] are not equal : undefined [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.151+0000 doassert@src/mongo/shell/assert.js:15:14 [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.151+0000 assert.eq@src/mongo/shell/assert.js:43:5 [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.151+0000 runTest@jstests\sharding\find_and_modify_after_multi_write.js:48:1 [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.151+0000 @jstests\sharding\find_and_modify_after_multi_write.js:76:1 [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.151+0000 @jstests\sharding\find_and_modify_after_multi_write.js:1:2 [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.151+0000 [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.151+0000 2015-10-03T15:06:07.152+0000 E QUERY [thread1] Error: [null] != [{ "_id" : ObjectId("560feedf3a395ff60c181637"), "x" : 200, "y" : 1 }] are not equal : undefined : [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.153+0000 doassert@src/mongo/shell/assert.js:15:14 [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.153+0000 assert.eq@src/mongo/shell/assert.js:43:5 [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.153+0000 runTest@jstests\sharding\find_and_modify_after_multi_write.js:48:1 [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.153+0000 @jstests\sharding\find_and_modify_after_multi_write.js:76:1 [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.153+0000 @jstests\sharding\find_and_modify_after_multi_write.js:1:2 [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.153+0000 [js_test:find_and_modify_after_multi_write] 2015-10-03T15:06:07.153+0000 failed to load: jstests\sharding\find_and_modify_after_multi_write.js