appsmithorg/appsmith · error · AppsmithPluginException
PE-DYN-5000
PE-DYN-5000
Error message
Error occurred while executing DynamoDB query.
What it means
A catch-all around the reflection-based invocation of the DynamoDB client method. It catches InvocationTargetException, IllegalAccessException, NoSuchMethodException, and ClassNotFoundException, and wraps them in DynamoPluginError.QUERY_EXECUTION_FAILED (PE-DYN-5000). The downstream cause message (e.getCause() if present, else e itself) is included so the specific AWS error is visible.
Source
Thrown at app/server/appsmith-plugins/dynamoPlugin/src/main/java/com/external/plugins/DynamoPlugin.java:253
try {
final Method actionExecuteMethod = DynamoDbClient.class.getMethod(
// Convert `ListTables` to `listTables`, which is the name of the method to execute
// this action.
toLowerCamelCase(action), requestClass);
final Object sdkValue = plainToSdk(parameters, requestClass);
final DynamoDbResponse response =
(DynamoDbResponse) actionExecuteMethod.invoke(ddb, sdkValue);
Object rawResponse = sdkToPlain(response);
Object transformedResponse =
getTransformedResponse((Map<String, Object>) rawResponse, action);
result.setBody(transformedResponse);
} catch (InvocationTargetException
| IllegalAccessException
| NoSuchMethodException
| ClassNotFoundException e) {
final String errorMessage = (e.getCause() == null ? e : e.getCause()).getMessage();
log.warn("Error executing the DynamoDB Action: {}", errorMessage, e);
throw new AppsmithPluginException(
DynamoPluginError.QUERY_EXECUTION_FAILED,
DynamoErrorMessages.QUERY_EXECUTION_FAILED_ERROR_MSG,
errorMessage);
}
result.setIsExecutionSuccess(true);
return result;
})
.onErrorResume(error -> {
ActionExecutionResult result = new ActionExecutionResult();
result.setIsExecutionSuccess(false);
if (!(error instanceof AppsmithPluginException)) {
error = new AppsmithPluginException(
DynamoPluginError.QUERY_EXECUTION_FAILED,
DynamoErrorMessages.QUERY_EXECUTION_FAILED_ERROR_MSG,
error.getMessage());
}
result.setErrorInfo(error);View on GitHub (pinned to 8cd9021c24)
Solutions
- Read the downstream error message in the exception cause — it usually names the specific AWS error code (e.g. AccessDeniedException, ValidationException).
- Verify all required fields for the DynamoDB action are present and correctly typed in the JSON body.
- Check IAM permissions and AWS credentials for the action being attempted.
- If the cause mentions NoSuchMethodException or a signature problem, ensure the action name and SDK version are compatible.
- For throughput errors, retry with exponential backoff or increase capacity.
Defensive patterns
Strategy: try-catch
Try / catch
plugin.execute(actionConfiguration, dsConfig)
.onErrorResume(AppsmithPluginException.class, e -> {
if ("PE-DYN-5000".equals(e.getErrorDTO().getAppErrorCode())) {
String downstream = e.getErrorDTO().getDownstreamErrorMessage();
log.warn("DynamoDB query failed downstream: {}", downstream);
// surface the AWS cause to the user, optionally retry on throughput errors
return Mono.just(errorResult(downstream));
}
return Mono.error(e);
}); Prevention
- Always inspect the downstream error message (the AWS cause) to find the real failure reason.
- Verify all required fields (TableName, Key, etc.) for the action before executing.
- Confirm IAM permissions cover the specific DynamoDB action.
- For throughput errors, implement retry with exponential backoff.
When it happens
Trigger: The DynamoDB SDK method invocation fails at runtime — invalid parameter values, missing required fields that the SDK validates, an AWS service-side error (AccessDeniedException, ResourceNotFoundException, ProvisionedThroughputExceededException), or a method-signature mismatch with the bundled SDK.
Common situations: Missing required fields like TableName or Key; IAM permissions insufficient for the action; AWS throttling or capacity errors; SDK version incompatibility causing NoSuchMethodException; invalid attribute value types that the SDK rejects.
Related errors
AI-assisted analysis of appsmithorg/appsmith@8cd9021c24 (2026-08-12).
Data as JSON: /api/errors/4b47c101e88e0db5.
Report an issue: GitHub.