diff --git a/packages/core/src/browser/preferences/preference-contribution.ts b/packages/core/src/browser/preferences/preference-contribution.ts index 0427495f48c88..1e69cbfced9b4 100644 --- a/packages/core/src/browser/preferences/preference-contribution.ts +++ b/packages/core/src/browser/preferences/preference-contribution.ts @@ -135,6 +135,13 @@ export class PreferenceSchemaProvider extends PreferenceProvider { } protected doSetSchema(schema: PreferenceSchema): PreferenceProviderDataChange[] { + const ajv = new Ajv(); + const valid = ajv.validateSchema(schema); + if (!valid) { + const errors = !!ajv.errors ? ajv.errorsText(ajv.errors) : 'unknown validation error'; + console.error('An invalid preference schema was rejected: ' + errors); + return []; + } const scope = PreferenceScope.Default; const domain = this.getDomain(); const changes: PreferenceProviderDataChange[] = [];