{"record":{"id":"74e10f1865dbedfb","repo":"appsmithorg/appsmith","slug":"pe-arg-5000-74e10f","errorCode":"PE-ARG-5000","errorMessage":"Missing action name (like `ListTables`, `GetItem` etc.).","messagePattern":"Missing action name \\(like `ListTables`, `GetItem` etc\\.\\)\\.","errorType":"exception","errorClass":"AppsmithPluginException","httpStatus":500,"severity":"error","filePath":"app/server/appsmith-plugins/dynamoPlugin/src/main/java/com/external/plugins/DynamoPlugin.java","lineNumber":203,"sourceCode":"\n        @Override\n        public Mono<ActionExecutionResult> execute(\n                DynamoDbClient ddb,\n                DatasourceConfiguration datasourceConfiguration,\n                ActionConfiguration actionConfiguration) {\n            log.debug(Thread.currentThread().getName() + \": execute() called for Dynamo plugin.\");\n            final Map<String, Object> requestData = new HashMap<>();\n            final String body = actionConfiguration.getBody();\n            List<RequestParamDTO> requestParams = new ArrayList<>();\n\n            return Mono.fromCallable(() -> {\n                        log.debug(Thread.currentThread().getName()\n                                + \": creating action execution result from DynamoDB plugin.\");\n                        ActionExecutionResult result = new ActionExecutionResult();\n\n                        final String action = actionConfiguration.getPath();\n                        if (!StringUtils.hasLength(action)) {\n                            throw new AppsmithPluginException(\n                                    AppsmithPluginError.PLUGIN_EXECUTE_ARGUMENT_ERROR,\n                                    DynamoErrorMessages.MISSING_ACTION_NAME_ERROR_MSG);\n                        }\n                        requestData.put(\"action\", action);\n                        requestParams.add(new RequestParamDTO(ACTION_CONFIGURATION_PATH, action, null, null, null));\n                        requestParams.add(new RequestParamDTO(ACTION_CONFIGURATION_BODY, body, null, null, null));\n\n                        Map<String, Object> parameters = null;\n                        try {\n                            if (StringUtils.hasLength(body)) {\n                                parameters = objectMapper.readValue(body, HashMap.class);\n                            }\n                        } catch (IOException e) {\n                            final String message = \"Error parsing the JSON body: \" + e.getMessage();\n                            log.warn(message, e);\n                            throw new AppsmithPluginException(\n                                    AppsmithPluginError.PLUGIN_JSON_PARSE_ERROR, body, e.getMessage());\n                        }","sourceCodeStart":185,"sourceCodeEnd":221,"githubUrl":"https://github.com/appsmithorg/appsmith/blob/8cd9021c24cdbea1c3c12c966073708e83db60c2/app/server/appsmith-plugins/dynamoPlugin/src/main/java/com/external/plugins/DynamoPlugin.java#L185-L221","documentation":"In DynamoPlugin.execute(), the action name is read from actionConfiguration.getPath(). If the path string is empty, throws PLUGIN_EXECUTE_ARGUMENT_ERROR. The path holds the DynamoDB operation name (e.g. ListTables, GetItem, PutItem, Query, Scan) that the plugin maps to an SDK request class and method via reflection.","triggerScenarios":"A DynamoDB action is executed with an empty path field — the operation dropdown was never selected, or a binding in the path field resolved to empty.","commonSituations":"The action name dropdown was left unselected; the action was duplicated and the path cleared; a mustache binding in the path resolved to empty at runtime.","solutions":["Select a DynamoDB action (ListTables, GetItem, PutItem, Query, Scan, etc.) in the action editor's path field.","If the path uses a binding, ensure it resolves to a valid action name at runtime.","When constructing the action programmatically, call actionConfiguration.setPath(\"GetItem\") before execute()."],"exampleFix":"// before\nactionConfiguration.setPath(\"\");\n\n// after\nactionConfiguration.setPath(\"GetItem\");","handlingStrategy":"validation","validationCode":"String action = actionConfiguration.getPath();\nif (!StringUtils.hasLength(action)) {\n    throw new IllegalArgumentException(\n        \"DynamoDB action name (path) is required, e.g. ListTables, GetItem, PutItem.\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always set a DynamoDB action name in the path field before executing.","If the path uses a binding, ensure it resolves to a valid action name at runtime.","When constructing the action programmatically, call setPath(\"GetItem\") before execute()."],"tags":["dynamodb","action-name","path-validation","argument-error"],"backgroundTag":null,"analyzedSha":"8cd9021c24cdbea1c3c12c966073708e83db60c2","analyzedAt":"2026-08-12T22:14:19.293Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}