{"record":{"id":"f5c12713f6c7c1d0","repo":"appsmithorg/appsmith","slug":"pe-arg-5000-f5c127","errorCode":"PE-ARG-5000","errorMessage":"Appsmith has found an unexpected query form property - 'Delete Key Value Pair Path'. Please reach out to Appsmith customer support to resolve this.","messagePattern":"Appsmith has found an unexpected query form property - 'Delete Key Value Pair Path'\\. Please reach out to Appsmith customer support to resolve this\\.","errorType":"exception","errorClass":"AppsmithPluginException","httpStatus":500,"severity":"error","filePath":"app/server/appsmith-plugins/firestorePlugin/src/main/java/com/external/plugins/FirestorePlugin.java","lineNumber":365,"sourceCode":"                    || Method.ADD_TO_COLLECTION.equals(method);\n        }\n\n        /*\n         * - Update mapBody with FieldValue.xyz() values if the FieldValue paths are provided.\n         */\n        private void insertFieldValues(\n                Map<String, Object> mapBody,\n                Map<String, Object> formData,\n                Method method,\n                List<RequestParamDTO> requestParams)\n                throws AppsmithPluginException {\n\n            /*\n             * - Check that FieldValue.delete() option is only available for UPDATE operation.\n             */\n            if (!Method.UPDATE_DOCUMENT.equals(method)\n                    && !isBlank(PluginUtils.getDataValueSafelyFromFormData(formData, DELETE_KEY_PATH, STRING_TYPE))) {\n                throw new AppsmithPluginException(\n                        AppsmithPluginError.PLUGIN_EXECUTE_ARGUMENT_ERROR,\n                        FirestoreErrorMessages.UNEXPECTED_PROPERTY_DELETE_KEY_PATH_ERROR_MSG);\n            }\n\n            /*\n             * - Parse delete path.\n             */\n            if (!isBlank(PluginUtils.getDataValueSafelyFromFormData(formData, DELETE_KEY_PATH, STRING_TYPE))) {\n                String deletePaths = PluginUtils.getDataValueSafelyFromFormData(formData, DELETE_KEY_PATH, STRING_TYPE);\n                requestParams.add(new RequestParamDTO(DELETE_KEY_PATH, deletePaths, null, null, null));\n                List<String> deletePathsList;\n                try {\n                    deletePathsList = objectMapper.readValue(deletePaths, new TypeReference<List<String>>() {});\n                } catch (IOException e) {\n                    throw new AppsmithPluginException(\n                            AppsmithPluginError.PLUGIN_EXECUTE_ARGUMENT_ERROR,\n                            FirestoreErrorMessages.FAILED_TO_PARSE_DELETE_KEY_PATH_ERROR_MSG,\n                            e.getMessage());","sourceCodeStart":347,"sourceCodeEnd":383,"githubUrl":"https://github.com/appsmithorg/appsmith/blob/8cd9021c24cdbea1c3c12c966073708e83db60c2/app/server/appsmith-plugins/firestorePlugin/src/main/java/com/external/plugins/FirestorePlugin.java#L347-L383","documentation":"In FirestorePlugin.insertFieldValues(). The 'Delete Key Value Pair Path' field uses Firestore FieldValue.delete(), which is only valid inside an UPDATE_DOCUMENT operation. If the method is anything other than UPDATE_DOCUMENT and this field is non-blank, the plugin throws PLUGIN_EXECUTE_ARGUMENT_ERROR.","triggerScenarios":"A Firestore action whose method is Get Single Document, Delete Document, Create Document, or any collection-level method has the 'Delete Key Value Pair Path' field populated.","commonSituations":"The user switched an action from Update Document to another method but left the delete-path field filled; the action was duplicated from an update action and the method was changed without clearing the field.","solutions":["Clear the 'Delete Key Value Pair Path' field when the method is not Update Document.","Switch the method back to Update Document if field deletion is actually needed.","When duplicating an Update Document action, clear method-incompatible fields before changing the method."],"exampleFix":"// before — method mismatch\nmethod = Method.GET_DOCUMENT;\nformData.put(\"deleteKeyPath\", \"[\\\"field1\\\"]\"); // invalid for GET\n\n// after\ndataData.put(\"deleteKeyPath\", \"\"); // cleared for GET\n// or: method = Method.UPDATE_DOCUMENT;","handlingStrategy":"validation","validationCode":"String deleteKeyPath = getDataValueSafelyFromFormData(formData, DELETE_KEY_PATH, STRING_TYPE);\nif (!Method.UPDATE_DOCUMENT.equals(method) && !isBlank(deleteKeyPath)) {\n    throw new IllegalArgumentException(\n        \"'Delete Key Value Pair Path' is only valid for Update Document.\");\n}","typeGuard":"static boolean isDeletePathAllowedForMethod(Method method) {\n    return Method.UPDATE_DOCUMENT.equals(method);\n}","tryCatchPattern":null,"preventionTips":["Clear the Delete Key Value Pair Path field whenever the method is not Update Document.","When duplicating an Update Document action, clear method-incompatible fields before changing the method.","Review all form fields after changing an action's method."],"tags":["firestore","form-validation","field-value-delete","update-document"],"backgroundTag":null,"analyzedSha":"8cd9021c24cdbea1c3c12c966073708e83db60c2","analyzedAt":"2026-08-12T22:14:19.293Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}