Any idea why even though _id is present, unless I am not spotting something obvious.
Request
{"update":{"_index":"test","_type":"doc","_id":"cat friskie"}}
{"doc":{"weight":1.0,"term":"cat friskie"},"doc_as_upsert":true,"scripted_upsert":false}
Response
     "update":{  
        "_index":"test",
        "_type":"doc",
        "_id":"cat friskie",
        "status":400,
        "error":{  
           "type":"illegal_argument_exception",
           "reason":"if _id is specified it must not be empty"
        }
     }
The similar one below is working fine.
{"update":{"_index":"test","_type":"doc","_id":"cat liter"}}
{"doc":{"weight":3.0,"term":"cat liter"},"doc_as_upsert":true,"scripted_upsert":false}
    "update":{  
        "_index":"suggestion_wowdefault27",
        "_type":"doc",
        "_id":"cat liter",
        "_version":1,
        "result":"noop",
        "_shards":{  
           "total":2,
           "successful":1,
           "failed":0
        },
        "status":200
     }