lutzroeder/netron · error · Error
Please update your browser to use this application.
Error message
Please update your browser to use this application.
What it means
On page load the application feature-detects the JavaScript runtime and refuses to run if Symbol.asyncIterator, BigInt, BigInt.asIntN/asUintN, or DataView.prototype.getBigInt64 are missing. These are hard requirements: the HDF5 reader stores 64-bit sizes/addresses as BigInt and iterates streams asynchronously, so a browser without them cannot load files correctly.
Source
Thrown at source/index.js:98
/* eslint-disable no-unused-vars */
try {
window.__view__.show('welcome message');
} catch (error) {
// continue regardless of error
}
/* eslint-enable no-unused-vars */
}
};
window.addEventListener('error', function (event) {
var error = event instanceof window.ErrorEvent && event.error && event.error instanceof Error ? event.error : new Error(event && event.message ? event.message : JSON.stringify(event));
window.exports.terminate(error.message);
});
window.addEventListener('load', function() {
if (typeof Symbol !== 'function' || typeof Symbol.asyncIterator !== 'symbol' ||
typeof BigInt !== 'function' || typeof BigInt.asIntN !== 'function' || typeof BigInt.asUintN !== 'function' || typeof DataView.prototype.getBigInt64 !== 'function') {
throw new Error('Please update your browser to use this application.');
}
var ua = window.navigator.userAgent;
var chrome = ua.match(/Chrom(e|ium)\/([0-9]+)\./);
var safari = ua.match(/Version\/(\d+)\.(\d+).*Safari/);
var firefox = ua.match(/Firefox\/([0-9]+)\./);
if ((Array.isArray(chrome) && parseInt(chrome[2], 10) < 86) ||
(Array.isArray(safari) && (parseInt(safari[1], 10) < 16 || (parseInt(safari[1], 10) === 16 && parseInt(safari[2], 10) < 4))) ||
(Array.isArray(firefox) && parseInt(firefox[1], 10) < 114)) {
throw new Error('Please update your browser to use this application.');
}
window.exports.preload(function(value, error) {
if (error) {
window.exports.terminate(error.message);
} else {
var host = new window.exports.browser.Host();
window.__view__ = new window.exports.view.View(host);
window.__view__.start();
}View on GitHub (pinned to d8a543f5f8)
Solutions
- Use a current browser: Chrome/Edge >= 86, Firefox >= 114, Safari >= 16.4 (see the companion version check).
- If you must support older runtimes, load full BigInt/Symbol polyfills — though true BigInt semantics are very hard to polyfill; a real browser upgrade is strongly preferred.
- Update the WebView/Chromium embedding in hybrid apps rather than the page.
- Gate the app entry point behind your own capability check and show an upgrade page instead of relying on the thrown error.
Example fix
// before: the app throws on load in old browsers
// (no code change possible in the app itself)
// after: guard the entry point in the host page
if (typeof BigInt !== 'function' ||
typeof DataView.prototype.getBigInt64 !== 'function' ||
typeof Symbol.asyncIterator !== 'symbol') {
document.body.innerHTML = '<p>This app requires a modern browser (Chrome 86+, Firefox 114+, Safari 16.4+).</p>';
} else {
boot();
} Defensive patterns
Strategy: type-guard
Validate before calling
function supportsRequiredFeatures() {
return typeof Symbol === 'function' &&
typeof Symbol.asyncIterator === 'symbol' &&
typeof BigInt === 'function' &&
typeof BigInt.asIntN === 'function' &&
typeof BigInt.asUintN === 'function' &&
typeof DataView.prototype.getBigInt64 === 'function';
}
if (!supportsRequiredFeatures()) showUpgradePage(); else startApp(); Type guard
function isModernBrowserRuntime() {
return typeof BigInt === 'function' &&
typeof BigInt.asIntN === 'function' &&
typeof DataView.prototype.getBigInt64 === 'function' &&
typeof Symbol.asyncIterator === 'symbol';
} Try / catch
window.addEventListener('error', function (e) {
if (/update your browser/.test(e.message || '')) showUpgradePage();
}); Prevention
- Advertise minimum browser requirements (Chrome 86+, Firefox 114+, Safari 16.4+) in docs and CI matrix.
- Run feature detection before loading the HDF5 bundle to avoid a hard crash on load.
- Test in the oldest browser you claim to support, including embedded WebViews.
When it happens
Trigger: Loading the app in a legacy browser (roughly pre-2019 engines): old Safari, old Chrome/Edge (pre-Chromium Edge), IE11, or embedded WebViews/older in-app browsers. The check is a typeof probe, so it fires before any HDF5 API is called.
Common situations: Corporate environments with pinned old browsers, older iOS/Android WebViews inside hybrid apps, kiosk or appliance browsers, or polyfilled environments where Symbol/BigInt exist only as partial shims (typeof checks still fail for missing pieces).
AI-assisted analysis of lutzroeder/netron@d8a543f5f8 (2026-08-27).
Data as JSON: /api/errors/994acd4f6883e75c.
Report an issue: GitHub.