FlowiseAI/Flowise · error · Error
Valid DynamoDB Table selection is required
Error message
Valid DynamoDB Table selection is required
What it means
Thrown in init() when tableName is falsy or equals the ERROR_PLACEHOLDER constant ('error'). The placeholder is used as the option name when loadMethods fails to list DynamoDB tables (see lines 266/317/334/343), so 'error' literally means the dropdown could not be populated. The tool refuses to construct a client against an unknown table.
Source
Thrown at packages/components/nodes/tools/AWSDynamoDBKVStorage/AWSDynamoDBKVStorage.ts:360
label: 'Error Loading Tables',
name: ERROR_PLACEHOLDER,
description: `Failed to load tables: ${error instanceof Error ? error.message : String(error)}`
}
]
}
}
}
async init(nodeData: INodeData, _: string, options: ICommonObject): Promise<any> {
const credentials = await getAWSCredentials(nodeData, options)
const region = (nodeData.inputs?.region as string) || DEFAULT_AWS_REGION
const tableName = nodeData.inputs?.tableName as string
const keyPrefix = (nodeData.inputs?.keyPrefix as string) || ''
const operation = (nodeData.inputs?.operation as string) || Operation.STORE
if (!tableName || tableName === ERROR_PLACEHOLDER) {
throw new Error('Valid DynamoDB Table selection is required')
}
// Validate key prefix doesn't contain separator
if (keyPrefix && keyPrefix.includes(KEY_SEPARATOR)) {
throw new Error(`Key prefix cannot contain "${KEY_SEPARATOR}" character`)
}
const dynamoClient = createDynamoDBClient(credentials, region)
if (operation === Operation.STORE) {
return new DynamoDBStoreTool(dynamoClient, tableName, keyPrefix)
} else {
return new DynamoDBRetrieveTool(dynamoClient, tableName, keyPrefix)
}
}
}
module.exports = { nodeClass: AWSDynamoDBKVStorage_Tools }View on GitHub (pinned to abe4a8601a)
Solutions
- Re-open the node and pick a concrete table from the dropdown — if the dropdown shows an error, fix the underlying AWS credentials/region first.
- Grant the credential IAM identity dynamodb:ListTables on '*' so the dropdown populates.
- Confirm the chosen region (default us-east-1) is the one where the table was created.
- If hand-editing the flow JSON, set inputs.tableName to the exact, case-sensitive table name.
Example fix
// before
if (!tableName || tableName === ERROR_PLACEHOLDER) {
throw new Error('Valid DynamoDB Table selection is required')
}
// after: also tell the user WHY selection is missing
if (!tableName || tableName === ERROR_PLACEHOLDER) {
throw new Error(
`Valid DynamoDB Table selection is required (received "${tableName}" — ` +
`the dropdown likely failed to list tables; check AWS credentials and region)`
)
} Defensive patterns
Strategy: validation
Validate before calling
const ERROR_PLACEHOLDER = 'error'
function assertTableName(tableName: string | undefined): asserts tableName is string {
if (!tableName || tableName === ERROR_PLACEHOLDER) {
throw new Error('Pick a concrete DynamoDB table from the dropdown before saving the node.')
}
} Type guard
function isValidTableName(name: unknown, badSet = new Set(['', 'error'])): name is string {
return typeof name === 'string' && !badSet.has(name) && name.length > 0
} Try / catch
try {
assertTableName(nodeData.inputs?.tableName)
} catch (e) {
// surface in the UI: 'Re-select the table; the dropdown may have failed to load.'
return { error: (e as Error).message }
} Prevention
- Grant dynamodb:ListTables so the dropdown populates and 'error' is never saved.
- Validate the table selection at flow-save time, not just at runtime init.
- After importing a flow, re-select dependent AWS dropdowns before deploying.
When it happens
Trigger: The user left the 'tableName' dropdown empty; the dropdown fell back to 'error' because the ListTables call failed (bad credentials, wrong region, no tables in account); or the flow JSON was hand-edited and tableName was removed.
Common situations: First-time setup with credentials that have no DynamoDB read permission, so the table list never loads and 'error' is saved as the selection; region mismatch where tables exist elsewhere; deploying a flow between environments without recreating the table.
Related errors
- Key prefix cannot contain "${KEY_SEPARATOR}" character
- SNS Topic ARN is required
- App name is required. Please select an app.
- Model is required
- Invalid Flow State
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/382004533e1dedf0.
Report an issue: GitHub.