title: IndexedDB - Data provided to an operation does not meet requirements
body: <p>I am trying to store data into an IndexedDB, but I am encountering a problem. When trying to add the well formatted JSON data I get the error:</p>
  
  <pre><code>DataError: Data provided to an operation does not meet requirements.
  </code></pre>
  
  <p>Below is my IndexedDB code: </p>
  
  <pre><code>function dbInit(key, value) {
      // Open (or create) the database
      var open = indexedDB.open("MyDatabase", 6);
  
      // Create the schema
      open.onupgradeneeded = function() {
          var db = open.result;
          var store = db.createObjectStore("MyObjectStore", {keyPath: "id", autoIncrement: true});
          var index = store.createIndex("types", "types");
      };
  
      open.onsuccess = function() {
          // Start a new transaction
          var db = open.result;
          var tx = db.transaction("MyObjectStore", "readwrite");
          var store = tx.objectStore("MyObjectStore");
          var index = store.index("types");
  
  
          // Add some data
          store.put(value);
  
  
          // Close the db when the transaction is done
          tx.oncomplete = function() {
              db.close();
          };
      }
  }
  </code></pre>
  
  <p>After looking through some similar questions I have noticed that this issue is present if a keyPath is not specified, but below I have specified the keyPath to "id" and autoIncrement: true so this should act as the keyPath.</p>
  
  <p>Below is the JSON data that I am trying to add - Passed into function under 'value' paramater. (Modified data as it is sensetitive, but in this format.) </p>
  
  <pre><code>[{
      "code": 1,
      "content": "XXX.html",
      "scheme": 4,
      "type": "XXX"
  }, {
      "code": 2,
      "content": "XXX.html",
      "scheme": 6,
      "type": "XXX"
  }, {
      "code": 3,
      "content": "XXX.html",
      "scheme": 1,
      "type": "XXX"
  }, {
      "code": 4,
      "content": "XXX.html",
      "scheme": 4,
      "type": "XXX"
  }]
  </code></pre>