diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts
index 51d9950f562..0c08ffac504 100644
--- a/src/services/formatting/formatting.ts
+++ b/src/services/formatting/formatting.ts
@@ -804,7 +804,7 @@ function formatSpanWorker(
isFirstListItem?: boolean): number {
Debug.assert(!nodeIsSynthesized(child));
- if (nodeIsMissing(child)) {
+ if (nodeIsMissing(child) || isGrammarError(parent, child)) {
return inheritedIndentation;
}
@@ -864,7 +864,7 @@ function formatSpanWorker(
// if child node is a token, it does not impact indentation, proceed it using parent indentation scope rules
const tokenInfo = formattingScanner.readTokenInfo(child);
// JSX text shouldn't affect indenting
- if (child.kind !== SyntaxKind.JsxText && !isGrammarError(parent, child)) {
+ if (child.kind !== SyntaxKind.JsxText) {
Debug.assert(tokenInfo.token.end === child.end, "Token end is child end");
consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, child);
return inheritedIndentation;
diff --git a/tests/cases/fourslash/codeFixWrapJsxInFragmentWithGrammarError1.ts b/tests/cases/fourslash/codeFixWrapJsxInFragmentWithGrammarError1.ts
new file mode 100644
index 00000000000..2e17dc67d79
--- /dev/null
+++ b/tests/cases/fourslash/codeFixWrapJsxInFragmentWithGrammarError1.ts
@@ -0,0 +1,7 @@
+///