diff --git a/core/lib/Drupal/Core/Config/Schema/SchemaCheckTrait.php b/core/lib/Drupal/Core/Config/Schema/SchemaCheckTrait.php
index 5127adc..e1ce8dc 100644
--- a/core/lib/Drupal/Core/Config/Schema/SchemaCheckTrait.php
+++ b/core/lib/Drupal/Core/Config/Schema/SchemaCheckTrait.php
@@ -42,13 +42,20 @@
    * @param string $config_name
    *   The configuration name.
    * @param array $config_data
-   *   The configuration data.
+   *   The configuration data, assumed to be data for a top-level config object.
    *
    * @return array|bool
    *   FALSE if no schema found. List of errors if any found. TRUE if fully
    *   valid.
    */
   public function checkConfigSchema(TypedConfigManagerInterface $typed_config, $config_name, $config_data) {
+    // We'd like to verify that the top-level type is either config_base,
+    // config_entity, or a derivative. The only thing we can really test though
+    // is that the schema supports having langcode in it. So add 'langcode' to
+    // the data if it doesn't already exist.
+    if (!isset($config_data['langcode'])) {
+      $config_data['langcode'] = 'en';
+    }
     $this->configName = $config_name;
     if (!$typed_config->hasConfigSchema($config_name)) {
       return FALSE;
diff --git a/core/modules/menu_ui/config/schema/menu_ui.schema.yml b/core/modules/menu_ui/config/schema/menu_ui.schema.yml
index 19d3efc..69af435 100644
--- a/core/modules/menu_ui/config/schema/menu_ui.schema.yml
+++ b/core/modules/menu_ui/config/schema/menu_ui.schema.yml
@@ -1,7 +1,7 @@
 # Schema for configuration files of the Menu UI module.
 
 menu_ui.settings:
-  type: mapping
+  type: config_object
   label: 'Menu settings'
   mapping:
     override_parent_selector:
