{"record":{"id":"405ca165dfea259a","repo":"BabylonJS/Babylon.js","slug":"unsupported-version","errorCode":null,"errorMessage":"Unsupported version: ","messagePattern":"Unsupported version: ","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/dev/loaders/src/glTF/glTFFileLoader.pure.ts","lineNumber":1238,"sourceCode":"        if (asset.minVersion !== undefined) {\r\n            const minVersion = GLTFFileLoader._parseVersion(asset.minVersion);\r\n            if (!minVersion) {\r\n                throw new Error(\"Invalid minimum version: \" + asset.minVersion);\r\n            }\r\n\r\n            if (GLTFFileLoader._compareVersion(minVersion, { major: 2, minor: 0 }) > 0) {\r\n                throw new Error(\"Incompatible minimum version: \" + asset.minVersion);\r\n            }\r\n        }\r\n\r\n        const createLoaders: { [key: number]: (parent: GLTFFileLoader) => IGLTFLoader } = {\r\n            1: GLTFFileLoader._CreateGLTF1Loader,\r\n            2: GLTFFileLoader._CreateGLTF2Loader,\r\n        };\r\n\r\n        const createLoader = createLoaders[version.major];\r\n        if (!createLoader) {\r\n            throw new Error(\"Unsupported version: \" + asset.version);\r\n        }\r\n\r\n        return createLoader(this);\r\n    }\r\n\r\n    private _parseJson(json: string): object {\r\n        this._startPerformanceCounter(\"Parse JSON\");\r\n        this._log(`JSON length: ${json.length}`);\r\n        const parsed = JSON.parse(json);\r\n        this._endPerformanceCounter(\"Parse JSON\");\r\n        return parsed;\r\n    }\r\n\r\n    private _unpackBinaryAsync(dataReader: DataReader): Promise<IGLTFLoaderData> {\r\n        this._startPerformanceCounter(\"Unpack Binary\");\r\n\r\n        // Read magic + version + length + json length + json format\r\n        return dataReader.loadAsync(20).then(() => {\r","sourceCodeStart":1220,"sourceCodeEnd":1256,"githubUrl":"https://github.com/BabylonJS/Babylon.js/blob/0592b347b8a4ee0236089ea86a749cacfdb266d8/packages/dev/loaders/src/glTF/glTFFileLoader.pure.ts#L1220-L1256","documentation":"Thrown when the parsed major version of `asset.version` has no registered loader (only major versions 1 and 2 are mapped to _CreateGLTF1Loader/_CreateGLTF2Loader). The file parses fine but targets an unsupported glTF generation.","triggerScenarios":"Loading a glTF with `asset.version` \"3.0\" (or any major other than 1 or 2).","commonSituations":"Future glTF 3.x files opened in a Babylon.js version that only supports 1.0/2.0; experimental exporter outputs.","solutions":["Re-export the asset as glTF 2.0","Upgrade Babylon.js packages to the latest version in case newer majors gained support","Convert the file with gltf-pipeline to glTF 2.0"],"exampleFix":"// before\n\"asset\": { \"version\": \"3.0\" }\n// after\n\"asset\": { \"version\": \"2.0\" }","handlingStrategy":"validation","validationCode":"const major = parseInt(String(gltfJson?.asset?.version ?? ''), 10);\nif (major !== 1 && major !== 2) throw new Error('Unsupported glTF major version: ' + gltfJson?.asset?.version);","typeGuard":"function isSupportedGltfVersion(json: any): boolean {\n  const major = parseInt(String(json?.asset?.version ?? ''), 10);\n  return major === 1 || major === 2;\n}","tryCatchPattern":"try {\n  await loader.loadAsync(url);\n} catch (e) {\n  if (e.message?.startsWith('Unsupported version:')) {\n    console.error('Convert this asset to glTF 2.0:', e.message);\n  }\n}","preventionTips":["Standardize on glTF 2.0 across your asset pipeline","Convert glTF 1.0/3.0 assets with gltf-pipeline before ingestion","Fail fast in CI by parsing asset.version of every asset"],"tags":["gltf","versioning","compatibility"],"backgroundTag":"gltf-unsupported-version","analyzedSha":"0592b347b8a4ee0236089ea86a749cacfdb266d8","analyzedAt":"2026-08-30T15:11:20.442Z","schemaVersion":2},"datasetVersion":"2026-08-30T18:17:15.746Z"}