swc-project/swc · error
failed to parse browser version
Error message
failed to parse browser version
What it means
During browserslist resolution in preset_env_base, a version string within the query could not be parsed as a browser version. This fires when a browserslist query contains a malformed or non-numeric version token, so version parsing fails while building Targets from the query.
Source
Thrown at crates/preset_env_base/src/query.rs:88
mobile_to_desktop: true,
ignore_unknown_versions: true,
..Default::default()
},
)
.with_context(|| {
format!(
"failed to resolve browserslist query: {:?}",
s.iter().map(|v| v.as_ref()).collect::<Vec<_>>()
)
})?;
// Track if the browserslist query returned empty (unknown version).
// When this happens, we should treat it as a recent browser version
// that supports all features, not apply all transforms.
let unknown_version = distribs.is_empty();
let versions =
BrowserData::parse_versions(distribs).expect("failed to parse browser version");
Ok((Arc::new(versions), unknown_version))
}
static CACHE: Lazy<DashMap<Query, (Arc<Versions>, bool), FxBuildHasher>> =
Lazy::new(Default::default);
if let Some(v) = CACHE.get(self) {
return Ok(v.clone());
}
let result = match *self {
Query::Single(ref s) => {
if s.is_empty() {
query(&["defaults"])
} else {
query(&[s])
}View on GitHub (pinned to 5176682b65)
Solutions
- Check every version token in the browserslist query for valid numeric forms (e.g. 88, 88.1)
- Remove or correct entries with placeholder or accidental non-numeric versions
- Test the same query against the browserslist CLI to confirm which entry is invalid
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/preset_env_base/src/query.rs:88 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
AI-assisted analysis of swc-project/swc@5176682b65 (2026-08-17).
Data as JSON: /api/errors/54d55b2e95e42842.
Report an issue: GitHub.