# Kibana 6.8 to 7.3 fails: \[uiStateJSON\] within \[dashboard\] is not allowed

**URL:** <https://discuss.elastic.co/t/kibana-6-8-to-7-3-fails-uistatejson-within-dashboard-is-not-allowed/196312>\
**Category:** Kibana\
**Created:** [August 22, 2019, 11:58am UTC](https://discuss.elastic.co/t/kibana-6-8-to-7-3-fails-uistatejson-within-dashboard-is-not-allowed/196312 "2019-08-22T11:58:13Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![cawoodm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/cawoodm/32/14083_2.png) [@cawoodm](https://discuss.elastic.co/u/cawoodm)\
**Post date:** [August 22, 2019, 11:58am UTC](https://discuss.elastic.co/t/kibana-6-8-to-7-3-fails-uistatejson-within-dashboard-is-not-allowed/196312/1 "2019-08-22T11:58:13Z")

</div>

Just tried to upgrade Kibana from a working 6.8 to 7.3 and kibana will not start saying:

> FATAL Error: mapping set to strict, dynamic introduction of [uiStateJSON] within [dashboard] is not allowed

```
log [11:51:53.497] [info][status][plugin:reporting@7.3.0] Status changed from uninitialized to green - Ready
      log [11:51:53.699] [warning][task_manager] Task vis_telemetry "oss_telemetry-vis_telemetry" failed in attempt to run: [version_conflict_engine_exception] [oss_telemetry-vis_telemetry]: version conflict, required seqNo [112], primary term [5]. current document has seqNo [113] and primary term [5], with { index_uuid="hm7O8_iTSleeVAHlYpORuA" & shard="0" & index=".kibana_task_manager" }
      log [11:51:53.714] [info][migrations] Creating index .kibana_9.
      log [11:51:53.901] [info][migrations] Migrating .kibana_8 saved objects to .kibana_9
      log [11:51:53.947] [warning][migrations] Exception @ migrations730 while trying to migrate dashboard panels! TypeError: Cannot set property 'columns' of undefined
      log [11:51:54.410] [error][status][plugin:spaces@7.3.0] Status changed from yellow to red - mapping set to strict, dynamic introduction of [uiStateJSON] within [dashboard] is not allowed
      log [11:51:54.414] [fatal][root] { Error: mapping set to strict, dynamic introduction of [uiStateJSON] within [dashboard] is not allowed
        at Object.write (D:\elk\kibana-7.3.0\src\core\server\saved_objects\migrations\core\elastic_index.js:152:21)
        at process._tickCallback (internal/process/next_tick.js:68:7)
      detail:
       { index:
          { _index: '.kibana_9',
            _type: '_doc',
            _id: 'dashboard:Monitoring-Status-(TEST)',
            status: 400,
            error: [Object] } },
      isBoom: true,
      isServer: true,
      data: null,
      output:
       { statusCode: 500,
         payload:
          { statusCode: 500,
            error: 'Internal Server Error',
            message: 'An internal server error occurred' },
         headers: {} },
      reformat: [Function],
      [Symbol(SavedObjectsClientErrorCode)]: 'SavedObjectsClient/generalError' }
      log [11:51:54.421] [info][plugins-system] Stopping all plugins.
      log [11:51:54.422] [info][plugins][translations] Stopping plugin

     FATAL Error: mapping set to strict, dynamic introduction of [uiStateJSON] within [dashboard] is not allowed

```

Here is part of our kibana index where we can indeed see `uiStateJSON` inside `dashboard`:

```
        {
            "_index": ".kibana_8",
            "_type": "doc",
            "_id": "dashboard:5f08a870-7c6a-11e7-aa55-3b0d52c71c60",
            "_score": 1.0,
            "_source": {
                "dashboard": {
                    "title": "[APM] Error Details",
                    "hits": 0,
                    "description": "",
                    "panelsJSON": "[...]",
                    "optionsJSON": "{\"darkTheme\": false}",
                    "uiStateJSON": "{}",

```

---

<div class="post-metadata">

**Author:** ![cawoodm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/cawoodm/32/14083_2.png) [@cawoodm](https://discuss.elastic.co/u/cawoodm)\
**Post date:** [August 22, 2019, 12:52pm UTC](https://discuss.elastic.co/t/kibana-6-8-to-7-3-fails-uistatejson-within-dashboard-is-not-allowed/196312/2 "2019-08-22T12:52:20Z")

</div>

Solution was to:

- run the old Kibana and
- export all dashboards from Management -\> Saved Objects.
- Edit this JSON file and remove all `uiStateJSON` elements from the JSON.
- Save and re-upload the JSON with overwrite

Now you can stop kibana and upgrade.

Note: if an upgrade failed you may have a kibana\_N index where N is higher than your current `.kibana` alias. This index can be deleted.

Example:  
GET /\_cat/aliases/_kib_ -\> Reveals kibana is using the .kibana\_8  
However, the failed migration created a .kibana\_9 index which can be deleted.

---

<div class="post-metadata">

**Author:** ![lukeelmers](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lukeelmers/32/35230_2.png) [@lukeelmers](https://discuss.elastic.co/u/lukeelmers)\
**Post date:** [August 30, 2019, 6:16pm UTC](https://discuss.elastic.co/t/kibana-6-8-to-7-3-fails-uistatejson-within-dashboard-is-not-allowed/196312/3 "2019-08-30T18:16:01Z")

</div>


