Mapping issue for Elasticsearch migration from 1.4.0 to 2.3.3

We have run mapping on Elasticsearch 1.4.0 which is elasticsearch 2.3.3 compatible(run on 2.3.3 with no issue).
While copying mapping from elasticsearch 1.4.0 to 2.3.3 it shows error which is due to index_analyzer instead of analyzer. And also while running migration plugin it show no error.

{"root_cause":[{"type":"mapper_parsing_exception","reason":"analyzer on field [contains] must be set when search_analyzer is set"}],"type":"mapper_parsing_exception","reason":"analyzer on field [contains] must be set when search_analyzer is set"}

Note:While running mapping for 2.3.3 analyzer become index_analyzer due to which above issue occur.

How can we avoid this issue while copying mapping from 1.4.0 to 2.3.3?

If I read you correctly, you have indices in 1.4.0 which are using index_analyzer. When you upgrade the cluster to 2.3.3, everything works fine and the mapping is upgraded using analyzer instead.
Which explains why the migration plugin does not complain.

But if you send a mapping using a "legacy" format (using index_analyzer basically), then PUT mapping operation is rejected.

Is that right?

If so, this is expected.

The only way to avoid this error is to send a correct mapping for 2.3.3.

Makes sense?