BabylonJS/Babylon.js · error · Error

Unsupported version:

Error message

Unsupported version: 

What it means

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.

Source

Thrown at packages/dev/loaders/src/glTF/glTFFileLoader.pure.ts:1238

        if (asset.minVersion !== undefined) {
            const minVersion = GLTFFileLoader._parseVersion(asset.minVersion);
            if (!minVersion) {
                throw new Error("Invalid minimum version: " + asset.minVersion);
            }

            if (GLTFFileLoader._compareVersion(minVersion, { major: 2, minor: 0 }) > 0) {
                throw new Error("Incompatible minimum version: " + asset.minVersion);
            }
        }

        const createLoaders: { [key: number]: (parent: GLTFFileLoader) => IGLTFLoader } = {
            1: GLTFFileLoader._CreateGLTF1Loader,
            2: GLTFFileLoader._CreateGLTF2Loader,
        };

        const createLoader = createLoaders[version.major];
        if (!createLoader) {
            throw new Error("Unsupported version: " + asset.version);
        }

        return createLoader(this);
    }

    private _parseJson(json: string): object {
        this._startPerformanceCounter("Parse JSON");
        this._log(`JSON length: ${json.length}`);
        const parsed = JSON.parse(json);
        this._endPerformanceCounter("Parse JSON");
        return parsed;
    }

    private _unpackBinaryAsync(dataReader: DataReader): Promise<IGLTFLoaderData> {
        this._startPerformanceCounter("Unpack Binary");

        // Read magic + version + length + json length + json format
        return dataReader.loadAsync(20).then(() => {

View on GitHub (pinned to 0592b347b8)

Solutions

  1. Re-export the asset as glTF 2.0
  2. Upgrade Babylon.js packages to the latest version in case newer majors gained support
  3. Convert the file with gltf-pipeline to glTF 2.0

Example fix

// before
"asset": { "version": "3.0" }
// after
"asset": { "version": "2.0" }
Defensive patterns

Strategy: validation

Validate before calling

const major = parseInt(String(gltfJson?.asset?.version ?? ''), 10);
if (major !== 1 && major !== 2) throw new Error('Unsupported glTF major version: ' + gltfJson?.asset?.version);

Type guard

function isSupportedGltfVersion(json: any): boolean {
  const major = parseInt(String(json?.asset?.version ?? ''), 10);
  return major === 1 || major === 2;
}

Try / catch

try {
  await loader.loadAsync(url);
} catch (e) {
  if (e.message?.startsWith('Unsupported version:')) {
    console.error('Convert this asset to glTF 2.0:', e.message);
  }
}

Prevention

When it happens

Trigger: Loading a glTF with `asset.version` "3.0" (or any major other than 1 or 2).

Common situations: Future glTF 3.x files opened in a Babylon.js version that only supports 1.0/2.0; experimental exporter outputs.

Related errors


AI-assisted analysis of BabylonJS/Babylon.js@0592b347b8 (2026-08-30). Data as JSON: /api/errors/405ca165dfea259a. Report an issue: GitHub.