risingwavelabs/risingwave · error · SinkError::DynamoDb
vector is not supported yet
Error message
vector is not supported yet
What it means
The DynamoDB sink's map_data has no implementation for RisingWave VECTOR-typed columns, so it fails the row with this explicit error. Vector columns (embedding data) have no DynamoDB AttributeValue representation in this connector.
Source
Thrown at src/connector/src/sink/dynamodb.rs:392
AttributeValue::L(list_attr)
}
DataType::Struct(st) => {
let mut map = HashMap::with_capacity(st.len());
for (sub_datum_ref, (name, data_type)) in scalar_ref
.into_struct()
.iter_fields_ref()
.zip_eq_debug(st.iter())
{
let attr = map_data(sub_datum_ref, data_type)?;
map.insert(name.to_owned(), attr);
}
AttributeValue::M(map)
}
DataType::Map(_m) => {
return Err(SinkError::DynamoDb(anyhow!("map is not supported yet")));
}
DataType::Vector(_) => {
return Err(SinkError::DynamoDb(anyhow!("vector is not supported yet")));
}
};
Ok(attr)
}
fn rw_pk_names(schema: &Schema, pk_indices: &[usize]) -> Result<Vec<String>> {
pk_indices
.iter()
.map(|pk_idx| {
schema
.fields()
.get(*pk_idx)
.map(|field| field.name.clone())
.ok_or_else(|| {
SinkError::DynamoDb(anyhow!(
"RisingWave primary key column index {} is out of range",
pk_idx
))View on GitHub (pinned to 6469eb736d)
Solutions
- Exclude the VECTOR column from the sinked relation (sink only non-vector columns).
- Cast the vector to JSONB or VARCHAR in the materialized view if a text representation is acceptable.
- Store vectors in a purpose-built store (e.g. a vector sink/index) instead of DynamoDB.
- Track/await Vector support in the DynamoDB sink.
Example fix
// before CREATE MATERIALIZED VIEW mv AS SELECT id, embedding FROM docs; CREATE SINK s FROM mv WITH (connector='dynamodb', table='docs'); // after CREATE MATERIALIZED VIEW mv AS SELECT id, embedding::JSONB AS embedding FROM docs;
Defensive patterns
Strategy: validation
Validate before calling
-- ensure no VECTOR columns before sinking to DynamoDB SELECT count(*) FROM rw_catalog.rw_columns WHERE relation_id = <mv_id> AND data_type LIKE 'VECTOR%';
Prevention
- Sink embeddings separately (JSONB cast or a vector-appropriate store).
- Exclude VECTOR columns from relations sunk to DynamoDB.
- Check connector type-support matrix when adding vector/AI columns to sunk tables.
When it happens
Trigger: A row with a VECTOR-typed column is formatted for the DynamoDB sink (format_row -> map_data reaches DataType::Vector arm).
Common situations: Embedding pipelines storing vectors in RisingWave whose tables are also sunk to DynamoDB; adding a vector column for AI workloads to an existing DynamoDB-sunk table.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- variant is not supported yet
- map is not supported yet
- MAP is not supported for BigQuery sink.
- VECTOR is not supported for BigQuery sink.
- Don't support Vector
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/18ebff9963b61889.
Report an issue: GitHub.