javascript - Contentful API returning 'version mismatch' on entry update -


i'm attempting following content management api contentful:

  1. get entry (entry1)
  2. find entry (entry2) using data field in entry1
  3. update entry1 data entry2

my code looks this:

client.getspace("xxxxxxxx").then(function(space){   space.getentries({     "content_type": "xxxxxxxx",     "sys.id": "2kezyjogdseqmcqie0oo88",     "limit": 1   }).then(function(places){      //search relevant category entry     space.getentries({       "content_type": contenttype.category,       "sys.id": places[0].fields.category["en-gb"],       "limit": 1     }).then(function(category){        //update place object       places[0].fields.categorynew = {         "en-gb": [            { sys: { type: "link", linktype: "entry", id: category[0].sys.id } }          ]       };                //update place       request({         method: 'put',         url: 'https://api.contentful.com/spaces/xxxxxxxx/entries/' + places[0].sys.id,         headers: {           'authorization': 'bearer xxxxxxxx',           'content-type': 'application/vnd.contentful.management.v1+json',           'x-contentful-content-type': 'xxxxxxxx'         },         body: json.stringify({fields:places[0].fields})       }, function (error, response, body) {         console.log(body);       });      });     }); }); 

steps 1 , 2 work fine final step, updating original entry, keeps returning following error:

response: {   "sys": {     "type": "error",     "id": "versionmismatch"   },   "requestid": "content-api:2pssf6rtpss2yyaaisk2wc" } 

how stop happening? i've tried can think of including manually updating sys.version number, when updating seems ignore sys data provide.

refer http://docs.contentfulcma.apiary.io/#introduction/resource-ids , section titled 'updating , version locking'

you need pass version header parameter called "x-contentful-version" put request.


Comments