{"record":{"id":"d59e713396f43081","repo":"appsmithorg/appsmith","slug":"pe-gsh-5000-d59e71","errorCode":"PE-GSH-5000","errorMessage":"Missing a valid response object.","messagePattern":"Missing a valid response object\\.","errorType":"exception","errorClass":"AppsmithPluginException","httpStatus":500,"severity":"error","filePath":"app/server/appsmith-plugins/googleSheetsPlugin/src/main/java/com/external/config/RowsDeleteMethod.java","lineNumber":176,"sourceCode":"                                \"deleteDimension\",\n                                Map.of(\n                                        \"range\",\n                                        Map.of(\n                                                \"sheetId\",\n                                                methodConfig.getSheetId(),\n                                                \"dimension\",\n                                                \"ROWS\",\n                                                \"startIndex\",\n                                                rowIndex,\n                                                \"endIndex\",\n                                                rowIndex + 1)))))));\n    }\n\n    @Override\n    public JsonNode transformExecutionResponse(\n            JsonNode response, MethodConfig methodConfig, Set<String> userAuthorizedSheetIds) {\n        if (response == null) {\n            throw new AppsmithPluginException(\n                    GSheetsPluginError.QUERY_EXECUTION_FAILED, ErrorMessages.MISSING_VALID_RESPONSE_ERROR_MSG);\n        }\n\n        return this.objectMapper.valueToTree(Map.of(\"message\", \"Deleted row successfully!\"));\n    }\n}\n","sourceCodeStart":158,"sourceCodeEnd":183,"githubUrl":"https://github.com/appsmithorg/appsmith/blob/8cd9021c24cdbea1c3c12c966073708e83db60c2/app/server/appsmith-plugins/googleSheetsPlugin/src/main/java/com/external/config/RowsDeleteMethod.java#L158-L183","documentation":"PE-GSH-5000 (QUERY_EXECUTION_FAILED). RowsDeleteMethod.transformExecutionResponse rejects a null response from the Google Sheets API. A null body means the upstream call produced nothing - transport-level failure, interceptor returning null, or framework issue.","triggerScenarios":"The underlying Sheets batchUpdate/delete request returned a null body: network blip, expired OAuth token producing an empty success response, or a misbehaving HTTP filter.","commonSituations":"Transient network/proxy issue; OAuth2 token expired mid-session; an environment with an interceptor that drops response bodies.","solutions":["Retry the action - usually transient.","Re-authorize the Google Sheets datasource if the token may have expired.","Inspect proxy/network logs for an empty body or non-2xx status swallowed upstream.","If it persists, report as a plugin/framework defect."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    result = method.transformExecutionResponse(response, config, ids);\n} catch (AppsmithPluginException e) {\n    if (\"PE-GSH-5000\".equals(e.getAppsmithError().getCode()) && response == null) {\n        // retry with backoff or re-authorize datasource\n    }\n}","preventionTips":["Treat null-response errors as transient - retry first.","Keep the Google Sheets OAuth2 token fresh.","Monitor network/proxy for empty-body responses."],"tags":["google-sheets","appsmith","runtime","null-response","transient","delete-row"],"backgroundTag":null,"analyzedSha":"8cd9021c24cdbea1c3c12c966073708e83db60c2","analyzedAt":"2026-08-12T22:14:19.293Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}