Turbo build swallows errors
Verify canary release
- [x] I verified that the issue exists in the latest Turborepo canary release.
Link to code that reproduces this issue
none
Which canary version will you have in your reproduction?
Environment information
Expected behavior
If one of MFEs fails, dropdown must not be closed, it should be open showing error
Actual behavior
while running in Micro frontend environment with turbo run build --concurrency=75% --filter=./micro-frontends/*
it swallows MFEs built with errors: turbo run build --concurrency=75% --filter=./micro-frontends/*
• Packages in scope: app-account, app-cashier, app-control-panel, app-customer, app-dynamic-form, app-examples, app-gaming, app-horse-racing, app-notifications, app-offers, app-payments, app-responsible-gaming, app-rtf-tester, app-site, app-wallet, app-web3, lib-fabric-design-system, lib-fabric-icons, lib-fabric-utils, lib-router, lib-websson-design-system, svc-config, svc-content, svc-platform, svc-realtime, svc-request, svc-telemetry • Running build in 27 packages • Remote caching disabled @obg/fabric-cli:build remote-module-context:build component-library-utils:build @obg/mfe-config:build app-horse-racing:build @obg/fabric-extensions:build app-control-panel:build rxf:build app-customer:build lib-router:build svc-request:build svc-realtime:build app-examples:build app-notifications:build svc-platform:build lib-websson-design-system:build svc-config:build svc-telemetry:build app-payments:build lib-fabric-utils:build svc-content:build app-rtf-tester:build app-cashier:build app-gaming:build app-wallet:build lib-fabric-icons:build lib-fabric-design-system:build app-web3:build app-offers:build app-responsible-gaming:build app-dynamic-form:build app-account:build app-site:build
Tasks: 33 successful, 33 total Cached: 1 cached, 33 total Time: 1m36.505s
But if we open app-gaming mfe it will show error inside: app-gaming:build cache miss, executing e70684dac972901b
[email protected] build fabric-cli build-stencil
[30:12.3] @stencil/core [30:12.7] v4.27.1 🍸 [30:17.6] build, app-gaming, prod mode, started ... [30:17.6] transpile started ... [30:26.1] transpile finished in 8.51 s [ ERROR ] TypeScript: src/components/gaming-multigame_frame/gaming-multigame_frame.tsx:135:2 Duplicate function implementation.
L135: componentDidLoad() {
L136: document.obgEventBus.dispatch(GamingAppCommand.InitializeMultiGame, {
[30:26.1] build failed in 8.52 s
To Reproduce
.
Additional context
No response
Please provide a reproduction.
I can confirm this bug still exists in [email protected]
Environment
- Turbo: 2.6.3
- Node: 22.21.1
- Package Manager: pnpm 10.24.0
Behavior
When running turbo check, multiple tasks fail with errors but Turbo reports them as successful
//:check:lint: The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it.
//:check:lint: Diagnostics not shown: 2649.
//:check:lint: Checked 3255 files in 835ms. No fixes applied.
//:check:lint: Found 3 errors.
//:check:lint: Found 2093 warnings.
//:check:lint: Found 573 infos.
//:check:lint: check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//:check:lint:
//:check:lint: ✖ Some errors were emitted while running checks.
//:check:lint:
//:check:lint:
Tasks: 10 successful, 10 total
Cached: 0 cached, 10 total
Time: 6.938s
- This happened with
Biome,tscand bash scripts withset -euo pipefail - I tested with turbo 2.6.0, 2.6.1, 2.6.2 and 2.6.3
package.json (root)
{
"name": "@wehelp/root",
"version": "1.1.0",
"private": true,
"type": "module",
"scripts": {
"build": "turbo build",
"build:docker": "turbo build:docker",
"check": "turbo check",
"check:i18n": "turbo check:i18n",
"check:lint": "biome check .",
"check:types": "turbo check:types",
"clean": "turbo clean && rm -rf node_modules",
"postclean": "pnpm i",
"dev": "turbo dev",
"dev:customer-manager": "turbo dev --filter=@apps/customer-manager",
"gen:i18n": "turbo gen:i18n",
"knip": "knip",
"prepare": "husky",
"preview": "turbo preview",
"test": "turbo test"
},
"devDependencies": {
"@biomejs/biome": "^2.3.8",
"@types/node": "catalog:",
"husky": "^9.1.7",
"knip": "^5.70.0",
"turbo": "^2.6.3",
"typescript": "^5.9.3"
},
"packageManager": "[email protected]",
"pnpm": {
"onlyBuiltDependencies": [
"@next/swc",
"@parcel/watcher",
"@tailwindcss/oxide",
"core-js",
"esbuild",
"msw",
"sharp",
"unrs-resolver"
]
}
}
turbo.json
{
"$schema": "https://turborepo.com/schema.json",
"globalPassThroughEnv": ["CI", "NODE_ENV"],
"tasks": {
"//#check:lint": {
"dependsOn": ["@wehelp/common-ui#build"],
"outputLogs": "new-only"
},
"clean": {
"cache": false
},
"build": {
"dependsOn": ["^build"],
"env": [
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY",
"NEXT_PUBLIC_RECAPTCHA_SITE_KEY",
"NEXT_PUBLIC_STRIPE_PK",
"NEXT_PUBLIC_GTM_ID"
],
"outputLogs": "new-only"
},
"build:docker": {
"dependsOn": ["build"],
"env": [
"HUSKY",
"BITBUCKET_USER",
"BITBUCKET_USER_PASSWORD",
"BITBUCKET_CLONE_DIR",
"OCI_PROD_NAMESPACE",
"OCI_PROD_USER",
"OCI_PROD_USER_TOKEN"
],
"outputLogs": "new-only"
},
"check": {
"dependsOn": ["check:types", "//#check:lint", "check:i18n"]
},
"check:i18n": {
"outputLogs": "new-only"
},
"check:types": {
"dependsOn": ["^build"],
"outputLogs": "new-only"
},
"dev": {
"cache": false,
"persistent": true
},
"e2e": {
"dependsOn": ["^build"],
"outputLogs": "new-only"
},
"gen:i18n": {},
"preview": {
"envMode": "loose",
"dependsOn": ["build"],
"persistent": true
},
"test": {
"dependsOn": ["^build"],
"outputLogs": "new-only"
}
}
}
yeah, the problem is bail=false in .npmrc
here's an example repo: https://github.com/leogurja/turbo-test