diff --git a/invenio_records_rest/schemas/json.py b/invenio_records_rest/schemas/json.py
index <HASH>..<HASH> 100644
--- a/invenio_records_rest/schemas/json.py
+++ b/invenio_records_rest/schemas/json.py
@@ -82,8 +82,8 @@ class RecordMetadataSchemaJSONV1(OriginalKeysMixin):
     @post_load()
     def inject_pid(self, data):
         """Inject context PID in the RECID field."""
-        # Use the already deserialized "pid" field
-        pid_value = data.get('pid')
+        # Remove already deserialized "pid" field
+        pid_value = data.pop('pid', None)
         if pid_value:
             pid_field = current_app.config['PIDSTORE_RECID_FIELD']
             data.setdefault(pid_field, pid_value)
marshmallow: delete duplicated pid field

* Delete duplicated pid field from the loaded data since the ``pid``
  field in the ``PersistentIdentifier`` object is a ``Generated``
  field and therefore, it should not exists per se.