{"record":{"id":"abe470a365714d8e","repo":"zed-industries/zed","slug":"properties-should-be-an-object","errorCode":null,"errorMessage":"properties should be an object","messagePattern":"properties should be an object","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/languages/src/python.rs","lineNumber":2418,"sourceCode":"                        }\n                    }\n\n                    current.insert(part.to_string(), serde_json::Value::Object(schema_entry));\n                } else {\n                    let next_current = current\n                        .entry(part.to_string())\n                        .or_insert_with(|| {\n                            serde_json::json!({\n                                \"type\": \"object\",\n                                \"properties\": {}\n                            })\n                        })\n                        .as_object_mut()\n                        .expect(\"should be an object\")\n                        .entry(\"properties\")\n                        .or_insert_with(|| serde_json::json!({}))\n                        .as_object_mut()\n                        .expect(\"properties should be an object\");\n\n                    current = next_current;\n                }\n            }\n        }\n\n        serde_json::json!({\n            \"type\": \"object\",\n            \"properties\": root_properties\n        })\n    }\n}\n\n#[cfg(target_os = \"macos\")]\nimpl RuffLspAdapter {\n    const GITHUB_ASSET_KIND: AssetKind = AssetKind::TarGz;\n    const ARCH_SERVER_NAME: &str = \"apple-darwin\";\n}","sourceCodeStart":2400,"sourceCodeEnd":2436,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/languages/src/python.rs#L2400-L2436","documentation":"Asserts that the \"properties\" member of an intermediate schema object is itself a JSON object during nested-schema construction in python.rs. It fires when a previously inserted entry has \"properties\" as a non-object (array, string, or null), which can only happen if the source schema being converted contains an invalid properties value for that node.","triggerScenarios":"Thrown at crates/languages/src/python.rs:2418 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Validate the incoming schema (properties is an object) before walking it","If properties is not an object, replace it with {} and log a warning about the malformed input","Add a fixture test with a malformed schema to keep the converter from panicking"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}