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
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
Source: t3-oss/create-t3-app