{"record":{"id":"647042bf94b40cc5","repo":"appsmithorg/appsmith","slug":"pe-arg-5000-647042","errorCode":"PE-ARG-5000","errorMessage":"Missing required field 'Spreadsheet Url'","messagePattern":"Missing required field 'Spreadsheet Url'","errorType":"exception","errorClass":"AppsmithPluginException","httpStatus":500,"severity":"error","filePath":"app/server/appsmith-plugins/googleSheetsPlugin/src/main/java/com/external/config/RowsDeleteMethod.java","lineNumber":40,"sourceCode":"\n/**\n * API reference: https://developers.google.com/sheets/api/samples/rowcolumn#delete_rows_or_columns\n */\npublic class RowsDeleteMethod implements ExecutionMethod, TemplateMethod {\n\n    ObjectMapper objectMapper;\n\n    public RowsDeleteMethod(ObjectMapper objectMapper) {\n        this.objectMapper = objectMapper;\n    }\n\n    public RowsDeleteMethod() {}\n\n    @Override\n    public boolean validateExecutionMethodRequest(MethodConfig methodConfig) {\n        if (methodConfig.getSpreadsheetId() == null\n                || methodConfig.getSpreadsheetId().isBlank()) {\n            throw new AppsmithPluginException(\n                    AppsmithPluginError.PLUGIN_EXECUTE_ARGUMENT_ERROR, ErrorMessages.MISSING_SPREADSHEET_URL_ERROR_MSG);\n        }\n        if (methodConfig.getSheetName() == null || methodConfig.getSheetName().isBlank()) {\n            throw new AppsmithPluginException(\n                    AppsmithPluginError.PLUGIN_EXECUTE_ARGUMENT_ERROR,\n                    ErrorMessages.MISSING_SPREADSHEET_NAME_ERROR_MSG);\n        }\n        if (methodConfig.getRowIndex() == null || methodConfig.getRowIndex().isBlank()) {\n            throw new AppsmithPluginException(\n                    AppsmithPluginError.PLUGIN_EXECUTE_ARGUMENT_ERROR, ErrorMessages.MISSING_ROW_INDEX_ERROR_MSG);\n        }\n        int rowIndex = 0;\n        try {\n            rowIndex = Integer.parseInt(methodConfig.getRowIndex());\n            if (rowIndex < 0) {\n                throw new AppsmithPluginException(\n                        AppsmithPluginError.PLUGIN_EXECUTE_ARGUMENT_ERROR, ErrorMessages.INVALID_ROW_INDEX_ERROR_MSG);\n            }","sourceCodeStart":22,"sourceCodeEnd":58,"githubUrl":"https://github.com/appsmithorg/appsmith/blob/8cd9021c24cdbea1c3c12c966073708e83db60c2/app/server/appsmith-plugins/googleSheetsPlugin/src/main/java/com/external/config/RowsDeleteMethod.java#L22-L58","documentation":"RowsDeleteMethod.validateExecutionMethodRequest throws when spreadsheetId is null or blank. The delete action needs to know which spreadsheet to target. Code PE-ARG-5000. Message says 'Spreadsheet Url' because the datasource field is labeled Spreadsheet URL (Appsmith stores it parsed into spreadsheetId).","triggerScenarios":"A Delete Row query whose Spreadsheet URL / spreadsheetUrl binding is empty, null, or whitespace.","commonSituations":"Datasource not fully configured; URL field left blank after duplicating an action; binding to a widget value that is empty on first render.","solutions":["Provide a valid Google Sheets URL (https://docs.google.com/spreadsheets/d/<ID>/edit) in the datasource/query.","If dynamic, ensure the binding resolves before the query runs, e.g. {{ appsmith.store.sheetUrl }}.","Confirm the datasource OAuth2 authorization is still valid."],"exampleFix":"// before\n{\n  \"sheetUrl\": \"\"\n}\n// after\n{\n  \"sheetUrl\": \"https://docs.google.com/spreadsheets/d/1AbC.../edit\"\n}","handlingStrategy":"validation","validationCode":"boolean ok = methodConfig.getSpreadsheetId() != null\n    && !methodConfig.getSpreadsheetId().isBlank();","typeGuard":"static boolean hasSpreadsheetId(MethodConfig c) {\n    return c != null && c.getSpreadsheetId() != null && !c.getSpreadsheetId().isBlank();\n}","tryCatchPattern":null,"preventionTips":["Configure the datasource Spreadsheet URL once and reuse it.","For dynamic URLs, default to a stored value.","Re-authorize the OAuth2 datasource periodically."],"tags":["google-sheets","appsmith","validation","spreadsheet-url","required-field","delete-row"],"backgroundTag":null,"analyzedSha":"8cd9021c24cdbea1c3c12c966073708e83db60c2","analyzedAt":"2026-08-12T22:14:19.293Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}