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
- 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
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
- 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
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
- Incompatible minimum version:
- Unsupported Physics plugin version.
- Buffer access is out of range
- ${extensionContext}: Invalid area light type (${light.type})
- ${context}: Irradiance coefficients are missing
AI-assisted analysis of BabylonJS/Babylon.js@0592b347b8 (2026-08-30).
Data as JSON: /api/errors/405ca165dfea259a.
Report an issue: GitHub.