risingwavelabs/risingwave · error · ErrorCode::NotSupported
view has no fragments to describe
Error message
view has no fragments to describe
What it means
Raised in handle_describe_fragments when the target relation has no streaming job to show: DESC/DESCRIBE FRAGMENTS was run on a relation without fragments (e.g., a system table or a non-shared source). It signals that fragment inspection is inapplicable to this object, not an internal failure.
Solutions
- Use `DESCRIBE <view_name>` for schema inspection
- Run `DESCRIBE FRAGMENTS` on the materialized view actually backing the workload
- Use `EXPLAIN <query>` to see the logical plan of a view
Example fix
// before DESCRIBE FRAGMENTS my_view; // after DESCRIBE my_view;
Defensive patterns
Strategy: validation
Validate before calling
-- views have no streaming job; check object type first SELECT * FROM rw_catalog.rw_views WHERE name = 'my_view';
Try / catch
catch NotSupported and fall back to DESCRIBE or EXPLAIN
Prevention
- Verify the target is an MV (`SHOW MATERIALIZED VIEWS`) before DESCRIBE FRAGMENTS
- Remember views are logical only — they have no fragments
When it happens
Trigger: Running `DESCRIBE FRAGMENTS <view_name>` on a regular SQL VIEW created via `CREATE VIEW`.
Common situations: Assuming views have an execution graph; mistyping an MV name and hitting a plain view with the same/similar name.
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
- non shared source has no fragments to describe
- system table has no fragments to describe
- {0}
- {0}
- AFTER MATCH SKIP TO FIRST/LAST missing its target variable
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/e6d61ba976c8e4a9.
Report an issue: GitHub.
Appendix: source
Thrown at src/frontend/src/handler/describe.rs:304
Relation::Source(s) => {
if s.is_shared() {
s.catalog.id.as_share_source_job_id()
} else {
bail!(ErrorCode::NotSupported(
"non shared source has no fragments to describe".to_owned(),
"Use `DESCRIBE` instead of `DESCRIBE FRAGMENTS`".to_owned(),
));
}
}
Relation::BaseTable(t) => t.table_catalog.id.as_job_id(),
Relation::SystemTable(_t) => {
bail!(ErrorCode::NotSupported(
"system table has no fragments to describe".to_owned(),
"Use `DESCRIBE` instead of `DESCRIBE FRAGMENTS`".to_owned(),
));
}
Relation::Share(_s) => {
bail!(ErrorCode::NotSupported(
"view has no fragments to describe".to_owned(),
"Use `DESCRIBE` instead of `DESCRIBE FRAGMENTS`".to_owned(),
));
}
_ => {
// Other relation types (Subquery, Join, etc.) are not directly describable.
return Err(not_found_err.into());
}
}
} else if let Ok(sink) = binder.bind_sink_by_name(object_name.clone()) {
sink.sink_catalog.id.as_job_id()
} else {
return Err(not_found_err.into());
}
};
let meta_client = session.env().meta_client();
let fragments = &meta_client.list_table_fragments(&[job_id]).await?[&job_id];View on GitHub (pinned to 6469eb736d)