diff --git a/lib/modules/manager/devcontainer/extract.spec.ts b/lib/modules/manager/devcontainer/extract.spec.ts
index 76b5b28993f89855a040848b4ccda8b7fc55bbaf..0daf77784c51dc5a15f7a23c401ca20052daddcd 100644
--- a/lib/modules/manager/devcontainer/extract.spec.ts
+++ b/lib/modules/manager/devcontainer/extract.spec.ts
@@ -33,7 +33,7 @@ describe('modules/manager/devcontainer/extract', () => {
       {
         // hello
         "features": {
-          "devcontainer.registry.renovate.com/test/features/first:1.2.3": {}
+          "devcontainer.registry.renovate.com/test/features/first:1.2.3": {},
         }
       }`);
       const extractConfig = {};
diff --git a/lib/util/schema-utils.ts b/lib/util/schema-utils.ts
index de637250c8f9cf9dd67f214cc4fec1c87f0b3c47..5acc34f01553b8eb5bc77c77f28ca8af0f9bd1e4 100644
--- a/lib/util/schema-utils.ts
+++ b/lib/util/schema-utils.ts
@@ -219,7 +219,7 @@ export const Json5 = z.string().transform((str, ctx): JsonValue => {
 
 export const Jsonc = z.string().transform((str, ctx): JsonValue => {
   const errors: JSONC.ParseError[] = [];
-  const value = JSONC.parse(str, errors);
+  const value = JSONC.parse(str, errors, { allowTrailingComma: true });
   if (errors.length === 0) {
     return value;
   }