Skip to content

Update Mobile View UI #102

Update Mobile View UI

Update Mobile View UI #102

Triggered via pull request July 13, 2026 19:57
Status Failure
Total duration 2m 7s
Artifacts

ci.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

12 errors and 2 warnings
lint-and-typecheck
Process completed with exit code 2.
lint-and-typecheck: src/components/ui/slider.tsx#L4
Cannot find module '@radix-ui/react-slider' or its corresponding type declarations.
api/__tests__/budgets-router.test.ts > Budgets Router > copyMonthlyBucket rejects source bucket in targets: api/budgets-router.ts#L80
TRPCError: Failed query: insert into "budget_bucket_lines" ("id", "bucketId", "categoryId", "amount", "notes", "createdAt", "updatedAt") values (default, $1, $2, $3, default, default, default) params: 3,13,1000.00 ❯ NodePgPreparedQuery.queryWithCache node_modules/src/pg-core/session.ts:73:10 ❯ api/budgets-router.ts:80:15 ❯ NodePgSession.transaction node_modules/src/node-postgres/session.ts:259:18 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:576:21 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ procedure node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:682:19 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'INTERNAL_SERVER_ERROR' } Caused by: Caused by: Error: Failed query: insert into "budget_bucket_lines" ("id", "bucketId", "categoryId", "amount", "notes", "createdAt", "updatedAt") values (default, $1, $2, $3, default, default, default) params: 3,13,1000.00 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:41:15 ❯ api/budgets-router.ts:80:15 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ procedure node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:281:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { query: 'insert into "budget_bucket_lines" ("id", "bucketId", "categoryId", "amount", "notes", "createdAt", "updatedAt") values (default, $1, $2, $3, default, default, default)', params: [ 3, 13, '1000.00' ] } Caused by: Caused by: error: relation "budget_bucket_lines" does not exist ❯ node_modules/pg/lib/client.js:631:17 ❯ node_modules/drizzle-orm/node-postgres/session.js:113:20 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:39:16 ❯ api/budgets-router.ts:80:15 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { length: 118, severity: 'ERROR', code: '42P01', detail: undefined, hint: undefined, position: '13', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, dataType: undefined, constraint: undefined, file: 'parse_relation.c', routine: 'parserOpenTable' }
api/__tests__/budgets-router.test.ts > Budgets Router > copyMonthlyBucket copies lines to target buckets: api/budgets-router.ts#L80
TRPCError: Failed query: insert into "budget_bucket_lines" ("id", "bucketId", "categoryId", "amount", "notes", "createdAt", "updatedAt") values (default, $1, $2, $3, default, default, default) params: 2,13,1000.00 ❯ NodePgPreparedQuery.queryWithCache node_modules/src/pg-core/session.ts:73:10 ❯ api/budgets-router.ts:80:15 ❯ NodePgSession.transaction node_modules/src/node-postgres/session.ts:259:18 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:576:21 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ procedure node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:682:19 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'INTERNAL_SERVER_ERROR' } Caused by: Caused by: Error: Failed query: insert into "budget_bucket_lines" ("id", "bucketId", "categoryId", "amount", "notes", "createdAt", "updatedAt") values (default, $1, $2, $3, default, default, default) params: 2,13,1000.00 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:41:15 ❯ api/budgets-router.ts:80:15 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ procedure node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:281:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { query: 'insert into "budget_bucket_lines" ("id", "bucketId", "categoryId", "amount", "notes", "createdAt", "updatedAt") values (default, $1, $2, $3, default, default, default)', params: [ 2, 13, '1000.00' ] } Caused by: Caused by: error: relation "budget_bucket_lines" does not exist ❯ node_modules/pg/lib/client.js:631:17 ❯ node_modules/drizzle-orm/node-postgres/session.js:113:20 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:39:16 ❯ api/budgets-router.ts:80:15 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { length: 118, severity: 'ERROR', code: '42P01', detail: undefined, hint: undefined, position: '13', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, dataType: undefined, constraint: undefined, file: 'parse_relation.c', routine: 'parserOpenTable' }
api/__tests__/budgets-router.test.ts > Budgets Router > updateLines does not change plan status: api/budgets-router.ts#L80
TRPCError: Failed query: insert into "budget_bucket_lines" ("id", "bucketId", "categoryId", "amount", "notes", "createdAt", "updatedAt") values (default, $1, $2, $3, default, default, default) params: 1,13,1000.00 ❯ NodePgPreparedQuery.queryWithCache node_modules/src/pg-core/session.ts:73:10 ❯ api/budgets-router.ts:80:15 ❯ NodePgSession.transaction node_modules/src/node-postgres/session.ts:259:18 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:576:21 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ procedure node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:682:19 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'INTERNAL_SERVER_ERROR' } Caused by: Caused by: Error: Failed query: insert into "budget_bucket_lines" ("id", "bucketId", "categoryId", "amount", "notes", "createdAt", "updatedAt") values (default, $1, $2, $3, default, default, default) params: 1,13,1000.00 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:41:15 ❯ api/budgets-router.ts:80:15 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ procedure node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:281:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { query: 'insert into "budget_bucket_lines" ("id", "bucketId", "categoryId", "amount", "notes", "createdAt", "updatedAt") values (default, $1, $2, $3, default, default, default)', params: [ 1, 13, '1000.00' ] } Caused by: Caused by: error: relation "budget_bucket_lines" does not exist ❯ node_modules/pg/lib/client.js:631:17 ❯ node_modules/drizzle-orm/node-postgres/session.js:113:20 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:39:16 ❯ api/budgets-router.ts:80:15 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { length: 118, severity: 'ERROR', code: '42P01', detail: undefined, hint: undefined, position: '13', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, dataType: undefined, constraint: undefined, file: 'parse_relation.c', routine: 'parserOpenTable' }
api/__tests__/budgets-router.test.ts > Budgets Router > updateLines replaces lines on one bucket and leaves others unchanged: api/budgets-router.ts#L75
TRPCError: Failed query: insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt" params: 5,month,0,1,1,January ❯ NodePgPreparedQuery.queryWithCache node_modules/src/pg-core/session.ts:73:10 ❯ node_modules/src/node-postgres/session.ts:154:18 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/src/node-postgres/session.ts:259:18 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:576:21 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'INTERNAL_SERVER_ERROR' } Caused by: Caused by: Error: Failed query: insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt" params: 5,month,0,1,1,January ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:41:15 ❯ node_modules/drizzle-orm/node-postgres/session.js:117:22 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { query: 'insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt"', params: [ 5, 'month', +0, 1, 1, 'January' ] } Caused by: Caused by: error: relation "budget_plan_buckets" does not exist ❯ node_modules/pg/lib/client.js:631:17 ❯ node_modules/drizzle-orm/node-postgres/session.js:124:18 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:39:16 ❯ node_modules/drizzle-orm/node-postgres/session.js:117:22 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { length: 118, severity: 'ERROR', code: '42P01', detail: undefined, hint: undefined, position: '13', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, dataType: undefined, constraint: undefined, file: 'parse_relation.c', routine: 'parserOpenTable' }
api/__tests__/budgets-router.test.ts > Budgets Router > gets a single plan with buckets and enriched lines: api/__tests__/budgets-router.test.ts#L267
TRPCError: [ { "expected": "number", "code": "invalid_type", "path": [ "planId" ], "message": "Invalid input: expected number, received undefined" } ] ❯ inputValidatorMiddleware node_modules/@trpc/server/src/unstable-core-do-not-import/middleware.ts:195:14 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ procedure node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:682:19 ❯ node_modules/@trpc/server/src/unstable-core-do-not-import/router.ts:474:19 ❯ api/__tests__/budgets-router.test.ts:267:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'BAD_REQUEST' } Caused by: Caused by: ZodError: [ { "expected": "number", "code": "invalid_type", "path": [ "planId" ], "message": "Invalid input: expected number, received undefined" } ] ❯ inputValidatorMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:42:24 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { _zod: { def: [ { expected: 'number', code: 'invalid_type', path: [ 'planId' ], message: 'Invalid input: expected number, received undefined' } ], constr: 'Function<ZodError>', traits: { constructor: 'Function<Set>', has: 'Function<has>', add: 'Function<add>', delete: 'Function<delete>', clear: 'Function<clear>', entries: 'Function<entries>', forEach: 'Function<forEach>', size: 2, values: 'Function<values>', keys: 'Function<values>' }, deferred: [] }, issues: [ { expected: 'number', code: 'invalid_type', path: [ 'planId' ], message: 'Invalid input: expected number, received undefined' } ], format: 'Function<value>', flatten: 'Function<value>', addIssue: 'Function<value>', addIssues: 'Function<value>', isEmpty: false }
api/__tests__/budgets-router.test.ts > Budgets Router > lists plans by year and filters by status: api/__tests__/budgets-router.test.ts#L249
AssertionError: expected 0 to be greater than or equal to 1 ❯ api/__tests__/budgets-router.test.ts:249:28
api/__tests__/budgets-router.test.ts > Budgets Router > (setup) creates a monthly draft plan for shared use: api/budgets-router.ts#L75
TRPCError: Failed query: insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt" params: 4,month,0,1,1,January ❯ NodePgPreparedQuery.queryWithCache node_modules/src/pg-core/session.ts:73:10 ❯ node_modules/src/node-postgres/session.ts:154:18 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/src/node-postgres/session.ts:259:18 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:576:21 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'INTERNAL_SERVER_ERROR' } Caused by: Caused by: Error: Failed query: insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt" params: 4,month,0,1,1,January ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:41:15 ❯ node_modules/drizzle-orm/node-postgres/session.js:117:22 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { query: 'insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt"', params: [ 4, 'month', +0, 1, 1, 'January' ] } Caused by: Caused by: error: relation "budget_plan_buckets" does not exist ❯ node_modules/pg/lib/client.js:631:17 ❯ node_modules/drizzle-orm/node-postgres/session.js:124:18 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:39:16 ❯ node_modules/drizzle-orm/node-postgres/session.js:117:22 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { length: 118, severity: 'ERROR', code: '42P01', detail: undefined, hint: undefined, position: '13', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, dataType: undefined, constraint: undefined, file: 'parse_relation.c', routine: 'parserOpenTable' }
api/__tests__/budgets-router.test.ts > Budgets Router > creates half-yearly (2) and annual (1) budgets: api/budgets-router.ts#L75
TRPCError: Failed query: insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt" params: 3,half,0,1,6,H1 ❯ NodePgPreparedQuery.queryWithCache node_modules/src/pg-core/session.ts:73:10 ❯ node_modules/src/node-postgres/session.ts:154:18 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/src/node-postgres/session.ts:259:18 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:576:21 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'INTERNAL_SERVER_ERROR' } Caused by: Caused by: Error: Failed query: insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt" params: 3,half,0,1,6,H1 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:41:15 ❯ node_modules/drizzle-orm/node-postgres/session.js:117:22 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { query: 'insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt"', params: [ 3, 'half', +0, 1, 6, 'H1' ] } Caused by: Caused by: error: relation "budget_plan_buckets" does not exist ❯ node_modules/pg/lib/client.js:631:17 ❯ node_modules/drizzle-orm/node-postgres/session.js:124:18 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:39:16 ❯ node_modules/drizzle-orm/node-postgres/session.js:117:22 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { length: 118, severity: 'ERROR', code: '42P01', detail: undefined, hint: undefined, position: '13', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, dataType: undefined, constraint: undefined, file: 'parse_relation.c', routine: 'parserOpenTable' }
api/__tests__/budgets-router.test.ts > Budgets Router > creates a quarterly budget with 4 buckets: api/budgets-router.ts#L75
TRPCError: Failed query: insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt" params: 2,quarter,0,1,3,Q1 ❯ NodePgPreparedQuery.queryWithCache node_modules/src/pg-core/session.ts:73:10 ❯ node_modules/src/node-postgres/session.ts:154:18 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/src/node-postgres/session.ts:259:18 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:576:21 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'INTERNAL_SERVER_ERROR' } Caused by: Caused by: Error: Failed query: insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt" params: 2,quarter,0,1,3,Q1 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:41:15 ❯ node_modules/drizzle-orm/node-postgres/session.js:117:22 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { query: 'insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt"', params: [ 2, 'quarter', +0, 1, 3, 'Q1' ] } Caused by: Caused by: error: relation "budget_plan_buckets" does not exist ❯ node_modules/pg/lib/client.js:631:17 ❯ node_modules/drizzle-orm/node-postgres/session.js:124:18 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:39:16 ❯ node_modules/drizzle-orm/node-postgres/session.js:117:22 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { length: 118, severity: 'ERROR', code: '42P01', detail: undefined, hint: undefined, position: '13', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, dataType: undefined, constraint: undefined, file: 'parse_relation.c', routine: 'parserOpenTable' }
api/__tests__/budgets-router.test.ts > Budgets Router > creates a monthly budget with 12 buckets: api/budgets-router.ts#L75
TRPCError: Failed query: insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt" params: 1,month,0,1,1,January ❯ NodePgPreparedQuery.queryWithCache node_modules/src/pg-core/session.ts:73:10 ❯ node_modules/src/node-postgres/session.ts:154:18 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/src/node-postgres/session.ts:259:18 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:576:21 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ❯ callRecursive node_modules/@trpc/server/src/unstable-core-do-not-import/procedureBuilder.ts:642:19 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'INTERNAL_SERVER_ERROR' } Caused by: Caused by: Error: Failed query: insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt" params: 1,month,0,1,1,January ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:41:15 ❯ node_modules/drizzle-orm/node-postgres/session.js:117:22 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { query: 'insert into "budget_plan_buckets" ("id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt") values (default, $1, $2, $3, $4, $5, $6, default, default) returning "id", "planId", "bucketType", "bucketIndex", "startMonth", "endMonth", "label", "createdAt", "updatedAt"', params: [ 1, 'month', +0, 1, 1, 'January' ] } Caused by: Caused by: error: relation "budget_plan_buckets" does not exist ❯ node_modules/pg/lib/client.js:631:17 ❯ node_modules/drizzle-orm/node-postgres/session.js:124:18 ❯ NodePgPreparedQuery.queryWithCache node_modules/drizzle-orm/pg-core/session.js:39:16 ❯ node_modules/drizzle-orm/node-postgres/session.js:117:22 ❯ api/budgets-router.ts:75:38 ❯ NodePgSession.transaction node_modules/drizzle-orm/node-postgres/session.js:186:22 ❯ api/budgets-router.ts:61:23 ❯ resolveMiddleware node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:221:17 ❯ callRecursive node_modules/@trpc/server/dist/initTRPC-BRf4imah.mjs:256:18 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { length: 118, severity: 'ERROR', code: '42P01', detail: undefined, hint: undefined, position: '13', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, dataType: undefined, constraint: undefined, file: 'parse_relation.c', routine: 'parserOpenTable' }
lint-and-typecheck
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/