{"record":{"id":"c16de015614b6c06","repo":"risingwavelabs/risingwave","slug":"unsupported-object-type-for-alterconnectorprops","errorCode":null,"errorMessage":"Unsupported object type for AlterConnectorProps: {:?}","messagePattern":"Unsupported object type for AlterConnectorProps: (.+?)","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/meta/service/src/stream_service.rs","lineNumber":847,"sourceCode":"                        dependent_mutation.keys().collect_vec()\n                    );\n                    let _version = self\n                        .barrier_scheduler\n                        .run_command(\n                            database_id,\n                            Command::ConnectorPropsChange(dependent_mutation),\n                        )\n                        .await?;\n                }\n\n                (\n                    new_props_plaintext,\n                    ConnectionId::from(request.object_id).as_object_id(),\n                )\n            }\n\n            _ => {\n                unimplemented!(\n                    \"Unsupported object type for AlterConnectorProps: {:?}\",\n                    request.object_type\n                );\n            }\n        };\n\n        let database_id = self\n            .metadata_manager\n            .catalog_controller\n            .get_object_database_id(object_id)\n            .await?;\n        // Connection updates are broadcast to dependent sources/sinks inside the `Connection` branch above.\n        // For sources/sinks/iceberg-table updates, broadcast the change to the object itself.\n        if AlterConnectorPropsObject::try_from(request.object_type)\n            .is_ok_and(|t| t != AlterConnectorPropsObject::Connection)\n        {\n            let mut mutation = HashMap::default();\n            mutation.insert(object_id, new_props_plaintext);","sourceCodeStart":829,"sourceCodeEnd":865,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/meta/service/src/stream_service.rs#L829-L865","documentation":"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.","triggerScenarios":"Sending an AlterConnector RPC whose `request.object_type` is neither the supported secret nor connection type.","commonSituations":"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.","solutions":["Check `request.object_type` before calling and only send supported types (secret/connection)","Upgrade the meta node to a version that supports the object type you need","Fix client code that populates object_type incorrectly"],"exampleFix":"// before\nlet req = AlterConnectorPropsRequest { object_id, object_type: ObjectType::Table, .. };\n// after\nlet req = AlterConnectorPropsRequest { object_id, object_type: ObjectType::Connection, .. };","handlingStrategy":"type-guard","validationCode":"match request.object_type {\n    ObjectType::Secret | ObjectType::Connection => {},\n    other => return Err(anyhow!(\"AlterConnectorProps unsupported for {:?}\", other)),\n}","typeGuard":"fn supports_alter_connector(t: ObjectType) -> bool {\n    matches!(t, ObjectType::Secret | ObjectType::Connection)\n}","tryCatchPattern":null,"preventionTips":["Check supported object types before issuing AlterConnector calls","Keep frontend and meta node versions aligned","Centralize allowed-object-type checks in client SDKs"],"tags":["rust","meta","grpc","unimplemented"],"backgroundTag":"unsupported-operation","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}