{"record":{"id":"9862c58e9e1cf673","repo":"appsmithorg/appsmith","slug":"plugin-execute-argument-error-9862c5","errorCode":"PLUGIN_EXECUTE_ARGUMENT_ERROR","errorMessage":"Missing required field 'Spreadsheet Url'","messagePattern":"Missing required field 'Spreadsheet Url'","errorType":"exception","errorClass":"AppsmithPluginException","httpStatus":null,"severity":"error","filePath":"app/server/appsmith-plugins/googleSheetsPlugin/src/main/java/com/external/config/SheetDeleteMethod.java","lineNumber":39,"sourceCode":"import java.util.Map;\nimport java.util.Set;\n\n/**\n * API reference: https://developers.google.com/sheets/api/guides/migration#delete_a_sheet\n */\npublic class SheetDeleteMethod implements ExecutionMethod {\n\n    ObjectMapper objectMapper;\n\n    public SheetDeleteMethod(ObjectMapper objectMapper) {\n        this.objectMapper = objectMapper;\n    }\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\n        return true;\n    }\n\n    @Override\n    public Mono<Object> executePrerequisites(MethodConfig methodConfig, OAuth2 oauth2) {\n        WebClient client =\n                WebClientUtils.builder().exchangeStrategies(EXCHANGE_STRATEGIES).build();\n        UriComponentsBuilder uriBuilder = getBaseUriBuilder(this.BASE_SHEETS_API_URL, methodConfig.getSpreadsheetId())\n                .queryParam(\"includeGridData\", false);\n","sourceCodeStart":21,"sourceCodeEnd":57,"githubUrl":"https://github.com/appsmithorg/appsmith/blob/8cd9021c24cdbea1c3c12c966073708e83db60c2/app/server/appsmith-plugins/googleSheetsPlugin/src/main/java/com/external/config/SheetDeleteMethod.java#L21-L57","documentation":"Thrown by SheetDeleteMethod.validateExecutionMethodRequest (line 39, the 'Delete Sheet' action) when MethodConfig.spreadsheetId is null or blank - i.e. the spreadsheet URL was missing or did not parse to an id. Note the listed code is PLUGIN_EXECUTE_ARGUMENT_ERROR (the enum name), which is the same family as PE-ARG-5000. Message: MISSING_SPREADSHEET_URL_ERROR_MSG = \"Missing required field 'Spreadsheet Url'\".","triggerScenarios":"Delete Sheet action run with the 'Spreadsheet URL' field unbound or empty; the URL was malformed so the id parser returned blank.","commonSituations":"Datasource-level URL is set but the per-action URL field is empty; URL pasted without the /spreadsheets/d/<id>/ segment; trailing whitespace; binding returns '' on first render.","solutions":["Bind 'Spreadsheet Url' to the full Google Sheets URL.","Use the spreadsheet picker to populate the field.","Trim and validate before run: {{ !!url.trim() && url.includes('/spreadsheets/d/') }}.","Make the run conditional on a non-empty, well-formed URL."],"exampleFix":"// Before\n{{ url }}\n\n// After\n{{ url?.trim() }}\n// conditional run\n{{ !!url && url.includes('/spreadsheets/d/') }}","handlingStrategy":"validation","validationCode":"const url = (formValues.url || '').trim();\nif (!url || !/\\/spreadsheets\\/d\\//.test(url)) {\n  showAlert('A valid Google Sheets URL is required', 'error');\n} else {\n  DeleteSheet.run({ spreadsheetUrl: url });\n}","typeGuard":"function isGoogleSheetsUrl(v) {\n  return typeof v === 'string' && /\\/spreadsheets\\/d\\/[A-Za-z0-9_-]+/.test(v.trim());\n}","tryCatchPattern":null,"preventionTips":["Populate the URL via the picker.","Trim whitespace and validate the /spreadsheets/d/ segment.","Make delete actions conditional on a valid URL; they are destructive."],"tags":["appsmith","google-sheets","validation","required-field","url-parsing","delete-action"],"backgroundTag":null,"analyzedSha":"8cd9021c24cdbea1c3c12c966073708e83db60c2","analyzedAt":"2026-08-12T22:14:19.293Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}