vercel/turborepo · warning
{warning}
Error message
{warning} What it means
`turbo boundaries` checks imports against package boundary rules. Some conditions are not rule violations but are reported as warnings (up to MAX_WARNINGS=16) via this generic emission in BoundariesResult::emit (crates/turborepo-boundaries/src/lib.rs:345-351). Examples: file types boundaries cannot parse ("X files are currently not supported, boundaries checks will not apply to them") and unparseable lines ("ignoring import on line N in FILE") from imports.rs.
Source
Thrown at crates/turborepo-boundaries/src/lib.rs:346
}
pub fn emit(&self, color_config: ColorConfig) {
for diagnostic in &self.diagnostics {
eprintln!("{:?}", Report::new(diagnostic.clone()));
}
let result_message = match self.diagnostics.len() {
0 => color!(color_config, BOLD_GREEN, "no issues found"),
1 => color!(color_config, BOLD_RED, "1 issue found"),
_ => color!(
color_config,
BOLD_RED,
"{} issues found",
self.diagnostics.len()
),
};
for warning in self.warnings.iter().take(MAX_WARNINGS) {
turborepo_log::warn(
turborepo_log::Source::turbo(Subsystem::Boundaries),
warning.to_string(),
)
.emit();
}
if !self.warnings.is_empty() {
eprintln!();
}
println!(
"Checked {} files in {} packages, {}",
self.files_checked, self.packages_checked, result_message
);
}
}
fn find_dynamic_imports(module_record: &ModuleRecord, source: &str) -> Vec<ImportResult> {
module_recordView on GitHub (pinned to f9245100cf)
Solutions
- Read the specific warning text: unsupported-extension warnings name the extension; tighten boundaries.include globs to only supported file types.
- Add exclusions for generated/vendored files in turbo.json's boundaries configuration so they are not checked at all.
- Treat warnings as advisory: gate CI on `turbo boundaries` exit code, which reflects diagnostics, not warnings.
- For unsupported-but-important file types, track support upstream and keep them out of the check until then.
Example fix
// turbo.json — before: broad include sweeps unsupported files
"boundaries": { "include": ["packages/**/*"] }
// -> "css files are currently not supported, boundaries checks will not apply to them"
// after: include only files boundaries can analyze
"boundaries": { "include": ["packages/**/*.{ts,tsx,js,jsx}"] } Defensive patterns
Strategy: validation
Validate before calling
import { globby } from "globby";
const SUPPORTED = new Set(["ts", "tsx", "js", "jsx", "mjs", "cjs"]);
const files = await globby(["packages/**/*"], { gitignore: true });
const unsupported = files.filter((f) => !SUPPORTED.has(f.split(".").pop() ?? ""));
if (unsupported.length) {
console.warn(
`${unsupported.length} files boundaries cannot parse; tighten boundaries.include`
);
} Try / catch
// turbo boundaries returns a result; gate on diagnostics, tolerate warnings // shell: // turbo boundaries; status=$? // [ $status -eq 0 ] || exit $status # warnings do not affect exit code
Prevention
- Scope boundaries.include to extensions the checker parses; exclude generated and vendored dirs.
- Gate CI on the exit code (diagnostics) and track warnings separately so noise doesn't hide real violations.
- Re-run boundaries after adding new file types to catch unsupported-extension drift early.
When it happens
Trigger: Running `turbo boundaries` on a repo whose include globs match files with unsupported extensions (anything the SWC-based checker cannot parse) or files containing syntax the import extraction skips. Warnings never affect the exit status; only diagnostics (rule violations) do.
Common situations: Monorepos with .vue/.svelte/.json or generated files swept in by broad `boundaries.include` globs, or exotic JS/TS syntax on lines the scanner gives up on. Teams often see this right after enabling boundaries on a large existing repo.
Related errors
- Invalid task name found in turbo.json.
- May not specify workspace name in non-root turbo.json
- New workspace root detected - unexpected 'workspaces' field
- New workspace root detected - unexpected pnpm-workspace.yaml
- Found both turbo.json and turbo.jsonc in the same directory:
AI-assisted analysis of vercel/turborepo@f9245100cf (2026-08-17).
Data as JSON: /api/errors/c3785dda829f8958.
Report an issue: GitHub.