zed-industries/zed · error

meta_schema should be present in schemars settings

Error message

meta_schema should be present in schemars settings

What it means

Asserts that the schemars draft2019-09 generator settings expose a meta_schema URL; normalize_action_name (and the schema generation helpers it feeds) rely on it to tag generated schemas. Failure means schemars changed or was configured such that meta_schema is None — a version/dependency mismatch rather than bad user input.

Source

Thrown at crates/json_schema_store/src/json_schema_store.rs:559

    let Some(defs) = schema.get_mut("$defs").and_then(|d| d.as_object_mut()) else {
        return;
    };
    let schema_name = settings::FeatureFlagsMap::schema_name();
    let enriched = feature_flags::generate_feature_flags_schema().to_value();
    defs.insert(schema_name.into_owned(), enriched);
}

fn generate_jsonc_schema() -> serde_json::Value {
    let generator = schemars::generate::SchemaSettings::draft2019_09()
        .with_transform(DefaultDenyUnknownFields)
        .with_transform(AllowTrailingCommas)
        .into_generator();
    let meta_schema = generator
        .settings()
        .meta_schema
        .as_ref()
        .expect("meta_schema should be present in schemars settings")
        .to_string();
    let defs = generator.definitions();
    let schema = schemars::json_schema!({
        "$schema": meta_schema,
        "allowTrailingCommas": true,
        "$defs": defs,
    });
    serde_json::to_value(schema).unwrap()
}

#[cfg(debug_assertions)]
fn generate_inspector_style_schema() -> serde_json::Value {
    let schema = schemars::generate::SchemaSettings::draft2019_09()
        .with_transform(util::schemars::DefaultDenyUnknownFields)
        .into_generator()
        .root_schema_for::<gpui::StyleRefinement>();

    serde_json::to_value(schema).unwrap()

View on GitHub (pinned to f4178619ac)

Solutions

  1. Pin or upgrade schemars to a version whose draft2019_09 settings always provide meta_schema
  2. Replace the unwrap with a fallback meta-schema URL constant if the setting is optional
  3. Add a compile-time test asserting meta_schema().is_some() for the configured settings
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at crates/json_schema_store/src/json_schema_store.rs:559 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20). Data as JSON: /api/errors/6c816693d0466c0e. Report an issue: GitHub.