turbo icon indicating copy to clipboard operation
turbo copied to clipboard

Turbo build swallows errors

Open avcharovBetsson opened this issue 3 months ago • 3 comments

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?

[email protected]

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

avcharovBetsson avatar Nov 05 '25 15:11 avcharovBetsson

Please provide a reproduction.

anthonyshew avatar Nov 05 '25 15:11 anthonyshew

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, tsc and bash scripts with set -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"
    }
  }
}

leogurja avatar Dec 04 '25 20:12 leogurja

yeah, the problem is bail=false in .npmrc

here's an example repo: https://github.com/leogurja/turbo-test

leogurja avatar Dec 04 '25 20:12 leogurja