risingwavelabs/risingwave · error

Unsupported object type for AlterConnectorProps: {:?}

Error message

Unsupported object type for AlterConnectorProps: {:?}

What it means

alter_connector_props only implements payload handling for specific object types (e.g. secret and connection); any other ObjectType hits an `unimplemented!` branch that panics the request handler with this message. It indicates the requested AlterConnectorProps operation targets an object type the service does not support yet.

Source

Thrown at src/meta/service/src/stream_service.rs:847

                        dependent_mutation.keys().collect_vec()
                    );
                    let _version = self
                        .barrier_scheduler
                        .run_command(
                            database_id,
                            Command::ConnectorPropsChange(dependent_mutation),
                        )
                        .await?;
                }

                (
                    new_props_plaintext,
                    ConnectionId::from(request.object_id).as_object_id(),
                )
            }

            _ => {
                unimplemented!(
                    "Unsupported object type for AlterConnectorProps: {:?}",
                    request.object_type
                );
            }
        };

        let database_id = self
            .metadata_manager
            .catalog_controller
            .get_object_database_id(object_id)
            .await?;
        // Connection updates are broadcast to dependent sources/sinks inside the `Connection` branch above.
        // For sources/sinks/iceberg-table updates, broadcast the change to the object itself.
        if AlterConnectorPropsObject::try_from(request.object_type)
            .is_ok_and(|t| t != AlterConnectorPropsObject::Connection)
        {
            let mut mutation = HashMap::default();
            mutation.insert(object_id, new_props_plaintext);

View on GitHub (pinned to 6469eb736d)

Solutions

  1. Check `request.object_type` before calling and only send supported types (secret/connection)
  2. Upgrade the meta node to a version that supports the object type you need
  3. Fix client code that populates object_type incorrectly

Example fix

// before
let req = AlterConnectorPropsRequest { object_id, object_type: ObjectType::Table, .. };
// after
let req = AlterConnectorPropsRequest { object_id, object_type: ObjectType::Connection, .. };
Defensive patterns

Strategy: type-guard

Validate before calling

match request.object_type {
    ObjectType::Secret | ObjectType::Connection => {},
    other => return Err(anyhow!("AlterConnectorProps unsupported for {:?}", other)),
}

Type guard

fn supports_alter_connector(t: ObjectType) -> bool {
    matches!(t, ObjectType::Secret | ObjectType::Connection)
}

Prevention

When it happens

Trigger: Sending an AlterConnector RPC whose `request.object_type` is neither the supported secret nor connection type.

Common situations: Newer frontend/SDK sending a newly added object type against an older meta binary; a bug in request construction setting the wrong object_type enum value.

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


AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11). Data as JSON: /api/errors/c16de015614b6c06. Report an issue: GitHub.