From 25a33a454cc3c18bc116485814c321ec5bc9f1a8 Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 13 Apr 2026 17:11:16 +0200 Subject: [PATCH] fix: handle URL construction error when switching to Visual Editor (#35004) Co-authored-by: Sami Rusani Co-authored-by: Claude Opus 4.6 --- web/utils/validators.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/web/utils/validators.ts b/web/utils/validators.ts index 51b47feddf..79d1bdc274 100644 --- a/web/utils/validators.ts +++ b/web/utils/validators.ts @@ -1,11 +1,21 @@ -import type { Schema } from 'jsonschema' +import type { Schema, ValidationError, ValidatorResult } from 'jsonschema' import { Validator } from 'jsonschema' import draft07Schema from './draft-07.json' const validator = new Validator() -export const draft07Validator = (schema: any) => { - return validator.validate(schema, draft07Schema as unknown as Schema) +type Draft07ValidationResult = Pick + +export const draft07Validator = (schema: any): Draft07ValidationResult => { + try { + return validator.validate(schema, draft07Schema as unknown as Schema) + } + catch { + // The jsonschema library may throw URL errors in browser environments + // when resolving schema $id URIs. Return empty errors since structural + // validation is handled separately by preValidateSchema (#34841). + return { valid: true, errors: [] as ValidationError[] } + } } export const forbidBooleanProperties = (schema: any, path: string[] = []): string[] => {