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

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.