{"record":{"id":"b91b4b2831563c2b","repo":"risingwavelabs/risingwave","slug":"unsupported-throttle-target-and-throttle-typ","errorCode":null,"errorMessage":"Unsupported throttle target: {:?} and throttle type: {:?}","messagePattern":"Unsupported throttle target: (.+?) and throttle type: (.+?)","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/frontend/src/handler/alter_streaming_rate_limit.rs","lineNumber":129,"sourceCode":"        }\n        (PbThrottleTarget::Sink, PbThrottleType::Sink) => {\n            let reader = session.env().catalog_reader().read_guard();\n            let (sink, schema_name) =\n                reader.get_any_sink_by_name(db_name, schema_path, &real_table_name)?;\n            if sink.target_table.is_some() {\n                bail!(\"ALTER SINK_RATE_LIMIT is not for sink into table\")\n            }\n            session.check_privilege_for_drop_alter(schema_name, &**sink)?;\n            (StatementType::ALTER_SINK, sink.id.as_raw_id())\n        }\n        (PbThrottleTarget::Sink, PbThrottleType::Backfill) => {\n            let reader = session.env().catalog_reader().read_guard();\n            let (sink, schema_name) =\n                reader.get_any_sink_by_name(db_name, schema_path, &real_table_name)?;\n            session.check_privilege_for_drop_alter(schema_name, &**sink)?;\n            (StatementType::ALTER_SINK, sink.id.as_raw_id())\n        }\n        _ => bail!(\n            \"Unsupported throttle target: {:?} and throttle type: {:?}\",\n            throttle_target,\n            throttle_type\n        ),\n    };\n    execute_with_long_running_notification(\n        handle_alter_streaming_rate_limit_by_id(\n            &session,\n            throttle_target,\n            throttle_type,\n            id,\n            rate_limit,\n            stmt_type,\n        ),\n        &session,\n        \"ALTER STREAMING RATE LIMIT\",\n        LongRunningNotificationAction::SuggestRecover,\n    )","sourceCodeStart":111,"sourceCodeEnd":147,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/frontend/src/handler/alter_streaming_rate_limit.rs#L111-L147","documentation":"ALTER ... SET RATE LIMIT supports only a fixed set of target/type combinations (e.g. MV/sink/dtable/source DML throttling). The matched statement's target (throttle_target) paired with the given throttle_type fell outside the handled arms of the match, so the handler bails with the debug-formatted pair. It is a guard against unsupported combinations rather than a failure of the resource itself.","triggerScenarios":"Running ALTER statements that set a rate limit on a target/type pair not implemented, e.g. altering a throttle on a target the match statement does not cover (the handled arms are table/sink MV throttle etc.).","commonSituations":"Users applying an ALTER THROTTLE / SET RATE LIMIT syntax copied from docs for a feature version where their target (e.g. a specific sink or source type) is not yet supported; version mismatch between docs and deployed RisingWave.","solutions":["Check the supported throttle_target/throttle_type combinations in the RisingWave version you run and use a supported one","Upgrade RisingWave to a version that supports throttling for this target type","Re-encode the throttling differently (e.g. adjust upstream producer rate instead of an RW-side throttle)"],"exampleFix":"-- before\nALTER SINK s SET RATE LIMIT 100; -- unsupported combo\n-- after\nALTER MATERIALIZED VIEW mv SET RATE LIMIT 100; -- supported target","handlingStrategy":"try-catch","validationCode":"-- Check your target is supported before altering\nSELECT name, type FROM rw_catalog.rw_tables WHERE name = 'mv_name';","typeGuard":null,"tryCatchPattern":"try {\n  await conn.query(\"ALTER MATERIALIZED VIEW mv SET RATE LIMIT 100\");\n} catch (e) {\n  if (String(e.message).includes('Unsupported throttle target')) {\n    // fall back or upgrade\n  }\n}","preventionTips":["Confirm the target object type supports throttling in your RisingWave version","Keep server and docs versions in sync","Test DDL on a dev cluster first"],"tags":["frontend","ddl","unsupported-target"],"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"}