{"record":{"id":"9f18f7c013929ed1","repo":"appsmithorg/appsmith","slug":"pe-arg-5000-9f18f7","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/RowsBulkAppendMethod.java","lineNumber":50,"sourceCode":"import java.util.stream.Collectors;\nimport java.util.stream.StreamSupport;\n\n/**\n * API reference: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append\n */\npublic class RowsBulkAppendMethod implements ExecutionMethod {\n\n    ObjectMapper objectMapper;\n\n    public RowsBulkAppendMethod(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        if (methodConfig.getTableHeaderIndex() != null\n                && !methodConfig.getTableHeaderIndex().isBlank()) {\n            try {\n                if (Integer.parseInt(methodConfig.getTableHeaderIndex()) <= 0) {\n                    throw new AppsmithPluginException(\n                            AppsmithPluginError.PLUGIN_EXECUTE_ARGUMENT_ERROR,\n                            ErrorMessages.INVALID_TABLE_HEADER_INDEX);\n                }\n            } catch (NumberFormatException e) {\n                throw new AppsmithPluginException(\n                        AppsmithPluginError.PLUGIN_EXECUTE_ARGUMENT_ERROR,","sourceCodeStart":32,"sourceCodeEnd":68,"githubUrl":"https://github.com/appsmithorg/appsmith/blob/8cd9021c24cdbea1c3c12c966073708e83db60c2/app/server/appsmith-plugins/googleSheetsPlugin/src/main/java/com/external/config/RowsBulkAppendMethod.java#L32-L68","documentation":"Thrown by RowsBulkAppendMethod.validateExecutionMethodRequest when methodConfig.getSpreadsheetId() is null or blank. Code PE-ARG-5000 (PLUGIN_EXECUTE_ARGUMENT_ERROR). The spreadsheet URL is the first mandatory field checked; without it the plugin cannot build the Sheets API URI for the bulk append.","triggerScenarios":"Running a 'Bulk Append Rows' query with the 'Spreadsheet Url' field empty, or a binding whose mustache resolved to an empty string. The null/blank check fires MISSING_SPREADSHEET_URL_ERROR_MSG.","commonSituations":"Datasource not fully configured, the URL field cleared by a user, or a dynamic binding to a widget/property that returned empty.","solutions":["Set the 'Spreadsheet Url' field to a valid https://docs.google.com/spreadsheets/d/.../ URL.","If bound dynamically, ensure the source widget/property is populated before the query runs.","Confirm the datasource authorization is intact (re-authorize if the token expired)."],"exampleFix":"// before\nSpreadsheet Url: {{ }}\n\n// after\nSpreadsheet Url: https://docs.google.com/spreadsheets/d/1AbC.../edit","handlingStrategy":"validation","validationCode":"// Check the spreadsheet URL/id is present before running bulk append\nString id = methodConfig.getSpreadsheetId();\nif (id == null || id.isBlank()) {\n    throw new IllegalArgumentException(\"'Spreadsheet Url' is required\");\n}","typeGuard":"boolean hasSpreadsheetId(com.external.config.MethodConfig mc) {\n    return mc.getSpreadsheetId() != null && !mc.getSpreadsheetId().isBlank();\n}","tryCatchPattern":null,"preventionTips":["Treat the spreadsheet URL as a hard-required field in the form.","Gate the Run button on a non-empty URL value.","Re-authorize the datasource when the OAuth token expires."],"tags":["google-sheets","appsmith","validation","configuration","spreadsheet","required-field"],"backgroundTag":null,"analyzedSha":"8cd9021c24cdbea1c3c12c966073708e83db60c2","analyzedAt":"2026-08-12T22:14:19.293Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}