diff --git a/json/resources/intellij.json.xml b/json/resources/intellij.json.xml
index 5e2a2495600c..37d0124a7dec 100644
--- a/json/resources/intellij.json.xml
+++ b/json/resources/intellij.json.xml
@@ -194,6 +194,8 @@
dynamic="true"/>
+
= create("com.intellij.json.jsonSchemaQuickFixSuppressor")
+ }
+
+ fun shouldSuppressFix(file: PsiFile, quickFixClass: Class): Boolean
+}
\ No newline at end of file
diff --git a/json/src/com/jetbrains/jsonSchema/impl/fixes/AddOptionalPropertiesIntention.kt b/json/src/com/jetbrains/jsonSchema/impl/fixes/AddOptionalPropertiesIntention.kt
index 4d2c1ffbe25f..9ab60b3aeaa8 100644
--- a/json/src/com/jetbrains/jsonSchema/impl/fixes/AddOptionalPropertiesIntention.kt
+++ b/json/src/com/jetbrains/jsonSchema/impl/fixes/AddOptionalPropertiesIntention.kt
@@ -19,6 +19,7 @@ import com.intellij.psi.PsiFile
import com.intellij.psi.createSmartPointer
import com.intellij.psi.util.parentOfType
import com.jetbrains.jsonSchema.extension.JsonLikeSyntaxAdapter
+import com.jetbrains.jsonSchema.extension.JsonSchemaQuickFixSuppressor
import com.jetbrains.jsonSchema.impl.JsonCachedValues
import com.jetbrains.jsonSchema.impl.JsonOriginalPsiWalker
import kotlinx.coroutines.Dispatchers
@@ -39,6 +40,9 @@ open class AddOptionalPropertiesIntention : IntentionAction {
override fun isAvailable(project: Project, editor: Editor, file: PsiFile): Boolean {
val containingObject = findContainingObjectNode(editor, file) ?: return false
+ if (JsonSchemaQuickFixSuppressor.EXTENSION_POINT_NAME.extensionList.any {
+ it.shouldSuppressFix(file, AddOptionalPropertiesIntention::class.java)
+ }) return false
return JsonCachedValues.hasComputedSchemaObjectForFile(containingObject.containingFile)
}