{"record":{"id":"30aa9d4353907ff4","repo":"swc-project/swc","slug":"openingandendingtagmismatch","errorCode":"OpeningAndEndingTagMismatch","errorMessage":"Opening and ending tag mismatch","messagePattern":"Opening and ending tag mismatch","errorType":"validation","errorClass":"swc_xml_parser::error::Error","httpStatus":null,"severity":"error","filePath":"crates/swc_xml_parser/src/parser/mod.rs","lineNumber":324,"sourceCode":"            },\n            Phase::MainPhase => match &token_and_info.token {\n                Token::Character { .. } => {\n                    self.append_character_to_current_element(token_and_info)?;\n                }\n                Token::StartTag { .. } => {\n                    let element = self.create_element_for_token(token_and_info.clone());\n\n                    self.append_node(self.get_current_element(), element.clone());\n                    self.open_elements_stack.items.push(element);\n                }\n                Token::EmptyTag { .. } => {\n                    let element = self.create_element_for_token(token_and_info.clone());\n\n                    self.append_node(self.get_current_element(), element);\n                }\n                Token::EndTag { tag_name, .. } => {\n                    if get_tag_name!(self.get_current_element()) != tag_name {\n                        self.errors.push(Error::new(\n                            token_and_info.span,\n                            ErrorKind::OpeningAndEndingTagMismatch,\n                        ));\n                    }\n\n                    let is_closed = self\n                        .open_elements_stack\n                        .items\n                        .iter()\n                        .rev()\n                        .any(|node| get_tag_name!(node) == tag_name);\n\n                    if is_closed {\n                        let popped = self\n                            .open_elements_stack\n                            .pop_until_tag_name_popped(&[tag_name]);\n\n                        self.update_end_tag_span(popped.as_ref(), token_and_info.span);","sourceCodeStart":306,"sourceCodeEnd":342,"githubUrl":"https://github.com/swc-project/swc/blob/5176682b65416c6b5de6b47379ae1588ea3ecb3f/crates/swc_xml_parser/src/parser/mod.rs#L306-L342","documentation":"XML parser error in Phase::Main: an end tag (or empty-tag close) does not match the currently open element on the stack of open elements — the closing name differs from the element being closed, so opening and ending tags mismatch.","triggerScenarios":"Thrown at crates/swc_xml_parser/src/parser/mod.rs:324 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Make the end tag name match its start tag exactly (case-sensitive)","Fix or remove improperly nested/mismatched tags"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5176682b65416c6b5de6b47379ae1588ea3ecb3f","analyzedAt":"2026-08-17T16:16:52.067Z","contentChangedAt":"2026-08-17T16:16:52.067Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}