bug: installing with bun fails "check:unsafe"

Author: maxwoolfdevCreated Apr 11, 2026Updated Jul 15, 2026
Labels🐞❔ unconfirmed bug

Provide environment information

Env information

System: OS: Windows 11 10.0.26200 CPU: (8) x64 12th Gen Intel(R) Core(TM) i3-12100F Memory: 3.12 GB / 15.79 GB Binaries: Node: 25.9.0 - C:\Users\maxwo\scoop\apps\nodejs\current\node.EXE npm: 11.12.1 - C:\Users\maxwo\scoop\apps\nodejs\current\npm.CMD pnpm: 10.33.0 - C:\Users\maxwo\scoop\shims\pnpm.EXE bun: 1.3.11 - C:\Users\maxwo\scoop\shims\bun.EXE

Output

bash
bun create t3-app@latest
   ___ ___ ___   __ _____ ___   _____ ____    __   ___ ___
  / __| _ \ __| /  \_   _| __| |_   _|__ /   /  \ | _ \ _ \
 | (__|   / _| / /\ \| | | _|    | |  |_ \  / /\ \|  _/  _/
  \___|_|_\___|_/‾‾\_\_| |___|   |_| |___/ /_/‾‾\_\_| |_|


│
◇  What will your project be called?
│  .
│
◇  Will you be using TypeScript or JavaScript?
│  TypeScript
│
◇  Will you be using Tailwind CSS for styling?
│  Yes
│
◇  Would you like to use tRPC?
│  Yes
│
◇  What authentication provider would you like to use?
│  BetterAuth
│
◇  What database ORM would you like to use?
│  Prisma
│
◇  Would you like to use Next.js App Router?
│  Yes
│
◇  What database provider would you like to use?
│  PostgreSQL
│
◇  Would you like to use ESLint and Prettier or Biome for linting and formatting?
│  Biome
│
◇  Should we initialize a Git repository and stage the changes?
│  No
│
◇  Should we run 'bun install' for you?
│  Yes
│
◇  What import alias would you like to use?
│  ~/

Using: bun

✔ App scaffolded successfully!

Adding boilerplate...
✔ Successfully setup boilerplate for betterAuth
✔ Successfully setup boilerplate for prisma
✔ Successfully setup boilerplate for tailwind
✔ Successfully setup boilerplate for trpc
✔ Successfully setup boilerplate for dbContainer
✔ Successfully setup boilerplate for envVariables
✔ Successfully setup boilerplate for biome

Installing dependencies...
✔ Successfully installed dependencies!

Generating Prisma client...
Successfully generated Prisma client!
Formatting project with biome...
⠇ Running format command
Aborting installation...
Error: Command failed with exit code 1: bun run check:unsafe
$ biome check --write --unsafe .
generated\prisma\query_engine_bg.js:125:78 lint/complexity/noCommaOperator ━━━━━━━━━━━━━━━━━━━━━━━━━

  ! The comma operator is disallowed.

    123 │ function y() {
    124 │       return (
  > 125 │               (A === null || A.byteLength === 0) && (A = new Uint8Array(_.memory.buffer)),
        │                                                                                          ^
    126 │               A
    127 │       );

  i Its use is often confusing and obscures side effects.


generated\prisma\query_engine_bg.js:138:14 lint/complexity/noCommaOperator ━━━━━━━━━━━━━━━━━━━━━━━━━

  ! The comma operator is disallowed.

    136 │               I >= V &&
    137 │                       ((S = new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 })),
  > 138 │                       S.decode(),
        │                                 ^
    139 │                       (I = t)),
    140 │               S.decode(y().subarray(e, e + t))

  i Its use is often confusing and obscures side effects.


generated\prisma\query_engine_bg.js:139:12 lint/complexity/noCommaOperator ━━━━━━━━━━━━━━━━━━━━━━━━━

  ! The comma operator is disallowed.

    137 │                       ((S = new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 })),
    138 │                       S.decode(),
  > 139 │                       (I = t)),
        │                               ^
    140 │               S.decode(y().subarray(e, e + t))
    141 │       );

  i Its use is often confusing and obscures side effects.


generated\prisma\query_engine_bg.js:144:22 lint/complexity/noCommaOperator ━━━━━━━━━━━━━━━━━━━━━━━━━

  ! The comma operator is disallowed.

    142 │ }
    143 │ function w(e, t) {
  > 144 │       return (e = e >>> 0), W(e, t);
        │                           ^
    145 │ }
    146 │ let s = 0;

  i Its use is often confusing and obscures side effects.


generated\prisma\query_engine_bg.js:151:18 lint/complexity/noCommaOperator ━━━━━━━━━━━━━━━━━━━━━━━━━

  ! The comma operator is disallowed.

    149 │       (m.encodeInto = (e, t) => {
    150 │               const n = m.encode(e);
  > 151 │               return t.set(n), { read: e.length, written: n.length };
        │                              ^
    152 │       });
    153 │ function b(e, t, n) {

  i Its use is often confusing and obscures side effects.


generated\prisma\query_engine_bg.js:161:18 lint/complexity/noCommaOperator ━━━━━━━━━━━━━━━━━━━━━━━━━

  ! The comma operator is disallowed.

    159 │                               .subarray(f, f + u.length)
    160 │                               .set(u),
  > 161 │                       (s = u.length),
        │                                     ^
    162 │                       f
    163 │               );

  i Its use is often confusing and obscures side effects.


generated\prisma\query_engine_bg.js:175:30 lint/complexity/noCommaOperator ━━━━━━━━━━━━━━━━━━━━━━━━━

  ! The comma operator is disallowed.

    173 │       }
    174 │       if (c !== r) {
  > 175 │               c !== 0 && (e = e.slice(c)), (o = n(o, r, (r = c + e.length * 3), 1) >>> 0);
        │                                          ^
    176 │               const u = y().subarray(o + c, o + r),
    177 │                       f = m.encodeInto(e, u);

  i Its use is often confusing and obscures side effects.


generated\prisma\runtime\index-browser.d.ts:8:12 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━

  ! Unexpected any. Specify a different type.

     6 │                        operations: {
     7 │                                [K in F]: {
   > 8 │                                        args: any;
       │                                              ^^^
     9 │                                };
    10 │                        };

  i any disables many type checking rules. Its use should be avoided.


generated\prisma\runtime\index-browser.d.ts:15:4 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━

  ! Unexpected any. Specify a different type.

    13 │ }
    14 │        ? T[symbol]["types"]["operations"][F]["args"]
  > 15 │        : any;
       │          ^^^
    16 │
    17 │ declare class DbNull extends NullTypesEnumValue {}

  i any disables many type checking rules. Its use should be avoided.


generated\prisma\runtime\index-browser.d.ts:247:27 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━

  ! Unexpected any. Specify a different type.

    245 │       static floor(n: Decimal.Value): Decimal;
    246 │       static hypot(...n: Decimal.Value[]): Decimal;
  > 247 │       static isDecimal(object: any): object is Decimal;
        │                                ^^^
    248 │       static ln(n: Decimal.Value): Decimal;
    249 │       static log(n: Decimal.Value, base?: Decimal.Value): Decimal;

  i any disables many type checking rules. Its use should be avoided.


generated\prisma\query_engine_bg.js:15:21 lint/suspicious/noAssignInExpressions ━━━━━━━━━━━━━━━━━━━━

  × The assignment should not be in an expression.

    13 │                                        F(e, o, {
    14 │                                                get: () => t[o],
  > 15 │                                                enumerable: !(r = j(t, o)) || r.enumerable,
       │                                                              ^^^^^^^^^^^
    16 │                                        });
    17 │                return e;

  i The use of assignments in expressions is confusing.
    Expressions are often considered as side-effect free.


generated\prisma\query_engine_bg.js:125:42 lint/suspicious/noAssignInExpressions ━━━━━━━━━━━━━━━━━━━

  × The assignment should not be in an expression.

    123 │ function y() {
    124 │       return (
  > 125 │               (A === null || A.byteLength === 0) && (A = new Uint8Array(_.memory.buffer)),
        │                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    126 │               A
    127 │       );

  i The use of assignments in expressions is confusing.
    Expressions are often considered as side-effect free.


generated\prisma\query_engine_bg.js:135:4 lint/suspicious/noAssignInExpressions ━━━━━━━━━━━━━━━━━━━━

  × The assignment should not be in an expression.

    133 │ function W(e, t) {
    134 │       return (
  > 135 │               (I += t),
        │                ^^^^^^
    136 │               I >= V &&
    137 │                       ((S = new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 })),

  i The use of assignments in expressions is confusing.
    Expressions are often considered as side-effect free.


generated\prisma\query_engine_bg.js:137:6 lint/suspicious/noAssignInExpressions ━━━━━━━━━━━━━━━━━━━━

  × The assignment should not be in an expression.

    135 │               (I += t),
    136 │               I >= V &&
  > 137 │                       ((S = new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 })),
        │                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    138 │                       S.decode(),
    139 │                       (I = t)),

  i The use of assignments in expressions is confusing.
    Expressions are often considered as side-effect free.


generated\prisma\query_engine_bg.js:139:5 lint/suspicious/noAssignInExpressions ━━━━━━━━━━━━━━━━━━━━

  × The assignment should not be in an expression.

    137 │                       ((S = new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 })),
    138 │                       S.decode(),
  > 139 │                       (I = t)),
        │                        ^^^^^
    140 │               S.decode(y().subarray(e, e + t))
    141 │       );

  i The use of assignments in expressions is confusing.
    Expressions are often considered as side-effect free.


generated\prisma\query_engine_bg.js:144:10 lint/suspicious/noAssignInExpressions ━━━━━━━━━━━━━━━━━━━

  × The assignment should not be in an expression.

    142 │ }
    143 │ function w(e, t) {
  > 144 │       return (e = e >>> 0), W(e, t);
        │               ^^^^^^^^^^^
    145 │ }
    146 │ let s = 0;

  i The use of assignments in expressions is confusing.
    Expressions are often considered as side-effect free.


generated\prisma\query_engine_bg.js:149:3 lint/suspicious/noAssignInExpressions ━━━━━━━━━━━━━━━━━━━━

  × The assignment should not be in an expression.

    147 │ const m = new TextEncoder();
    148 │ "encodeInto" in m ||
  > 149 │       (m.encodeInto = (e, t) => {
        │        ^^^^^^^^^^^^^^^^^^^^^^^^^^
  > 150 │               const n = m.encode(e);
  > 151 │               return t.set(n), { read: e.length, written: n.length };
  > 152 │       });
        │       ^
    153 │ function b(e, t, n) {
    154 │       if (n === void 0) {

  i The use of assignments in expressions is confusing.
    Expressions are often considered as side-effect free.


generated\prisma\query_engine_bg.js:161:5 lint/suspicious/noAssignInExpressions ━━━━━━━━━━━━━━━━━━━━

  × The assignment should not be in an expression.

    159 │                               .subarray(f, f + u.length)
    160 │                               .set(u),
  > 161 │                       (s = u.length),
        │                        ^^^^^^^^^^^^
    162 │                       f
    163 │               );

  i The use of assignments in expressions is confusing.
    Expressions are often considered as side-effect free.


generated\prisma\query_engine_bg.js:175:15 lint/suspicious/noAssignInExpressions ━━━━━━━━━━━━━━━━━━━

  × The assignment should not be in an expression.

    173 │       }
    174 │       if (c !== r) {
  > 175 │               c !== 0 && (e = e.slice(c)), (o = n(o, r, (r = c + e.length * 3), 1) >>> 0);
        │                           ^^^^^^^^^^^^^^
    176 │               const u = y().subarray(o + c, o + r),
    177 │                       f = m.encodeInto(e, u);

  i The use of assignments in expressions is confusing.
    Expressions are often considered as side-effect free.


generated\prisma\runtime\index-browser.d.ts:42:22 lint/suspicious/noRedeclare ━━━━━━━━━━━━━━━━━━━━━━

  × Shouldn't redeclare 'Decimal'. Consider to delete it or rename it.

    40 │ }
    41 │
  > 42 │ export declare class Decimal {
       │                      ^^^^^^^
    43 │        readonly d: number[];
    44 │        readonly e: number;

  i 'Decimal' is defined here:

    17 │ declare class DbNull extends NullTypesEnumValue {}
    18 │
  > 19 │ export declare function Decimal(n: Decimal.Value): Decimal;
       │                         ^^^^^^^
    20 │
    21 │ export declare namespace Decimal {


check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  × Some errors were emitted while running checks.


error: script "check:unsafe" exited with code 1
The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it.
Diagnostics not shown: 291.
Checked 47 files in 1709ms. Fixed 43 files.
Found 29 errors.
Found 282 warnings.

Describe the bug

installing with bun fails "check:unsafe." choices are in the logs. (maybe only happens with biome, or something?)

Reproduction repo

.

To reproduce

Run bun create t3-app@latest

Additional information

No response