Rejecting mapping update to [.skedler] as the final mapping would have more than 1 type: [_doc, skedlerdoc]

Modified on Wed, 13 Nov, 2019 at 10:47 PM

When you start Skedler Reports and if you see the following error in console or in skedler log (skedler.log):

  • Cluster - number of CPU cores in your server  16
  • Cluster - On Exit
  • Cluster - Creating worker threads
  • Server running at http://0.0.0.0:3000
  • ********Checking for the configured Datastore********
  • Skedler Config - Database type: Elasticsearch
  • ES version - 7
  • Kibana version - 7.0.1
  • Skedler Config - This Elasticsearch version is  7
  • ServerInitialization - Skedler index created successfully
  • ServerInitialization - Error in creating skedler config { Error: [illegal_argument_exception] Rejecting mapping update to [.skedler] as the final mapping would have more than 1 type: [_doc, skedlerdoc]
  •     at respond (/opt/skedler/node_modules/elasticsearch/src/lib/transport.js:315:23)
  •     at checkRespForFailure (/opt/skedler/node_modules/elasticsearch/src/lib/transport.js:274:13)
  •     at HttpConnector.<anonymous> (/opt/skedler/node_modules/elasticsearch/src/lib/connectors/http.js:159:7)
  •     at IncomingMessage.bound (/opt/skedler/node_modules/elasticsearch/node_modules/lodash/dist/lodash.js:729:21)
  •     at IncomingMessage.emit (events.js:194:15)
  •     at endReadableNT (_stream_readable.js:1103:12)
  •     at process._tickCallback (internal/process/next_tick.js:63:19)
  •   status: 400,
  •   displayName: 'BadRequest',
  •   message:
  •    '[illegal_argument_exception] Rejecting mapping update to [.skedler] as the final mapping would have more than 1 type: [_doc, skedlerdoc]',
  •   path: '/.skedler/skedlerdoc/version/_create',
  •   query: {},
  •   body:
  •    '{"version":"4.6.1","edition":"Basic","registrationstatus":""}',
  •   statusCode: 400,
  •   response:
  •    '{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Rejecting mapping update to [.skedler] as the final mapping would have more than 1 type: [_doc, skedlerdoc]"}],"type":"illegal_argument_exception","reason":"Rejecting mapping update to [.skedler] as the final mapping would have more than 1 type: [_doc, skedlerdoc]"},"status":400}',
  •   toString: [Function],
  •   toJSON: [Function] }
  •  
  • checking for skedler index shards health
  • Found skedler index
  • Update Layer - get skedler version { Error: Not Found
  •     at respond (/opt/skedler/node_modules/elasticsearch/src/lib/transport.js:315:23)
  •     at checkRespForFailure (/opt/skedler/node_modules/elasticsearch/src/lib/transport.js:274:13)
  •     at HttpConnector.<anonymous> (/opt/skedler/node_modules/elasticsearch/src/lib/connectors/http.js:159:7)
  •     at IncomingMessage.bound (/opt/skedler/node_modules/elasticsearch/node_modules/lodash/dist/lodash.js:729:21)
  •     at IncomingMessage.emit (events.js:194:15)
  •     at endReadableNT (_stream_readable.js:1103:12)
  •     at process._tickCallback (internal/process/next_tick.js:63:19)
  •   status: 404,
  •   displayName: 'NotFound',
  •   message: 'Not Found',
  •   path: '/.skedler/skedlerdoc/version',
  •   query: {},
  •   body: undefined,
  •   statusCode: 404,
  •   response:
  •    '{"_index":".skedler","_type":"skedlerdoc","_id":"version","found":false}',
  •   toString: [Function],
  •   toJSON: [Function] }
  •  
  • Exception  TypeError: Cannot read property '_type' of undefined
  •     at recursiveIndex (eval at o9l (/opt/skedler/server/routes/updates.js:1:111561), <anonymous>:1:2047)
  •     at eval (eval at o9l (/opt/skedler/server/routes/updates.js:1:111561), <anonymous>:1:9238)
  •     at respond (/opt/skedler/node_modules/elasticsearch/src/lib/transport.js:334:17)
  •     at checkRespForFailure (/opt/skedler/node_modules/elasticsearch/src/lib/transport.js:274:13)
  •     at HttpConnector.<anonymous> (/opt/skedler/node_modules/elasticsearch/src/lib/connectors/http.js:159:7)
  •     at IncomingMessage.bound (/opt/skedler/node_modules/elasticsearch/node_modules/lodash/dist/lodash.js:729:21)
  •     at IncomingMessage.emit (events.js:194:15)
  •     at endReadableNT (_stream_readable.js:1103:12)
  •     at process._tickCallback (internal/process/next_tick.js:63:19)
  • Do the following to resolve this issue

    It looks like when you're setting a template for .skedler index, on doing so, a type _doc is mapped to .skedler by default. Usually, we create an index with the type as skedlerdoc in Skedler. Since _doc is mapped already, we cannot create the index. Can you remove the template for .skedler and try again?

    Or you can simply comment on the elasticsearch_url in reporting.yml and use internal DB for storing the metadata. By doing either one of these, you can bypass the issue.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article