Repository navigation
fix(api): return 400 for a malformed list cursor instead of page one #1826
test.yml
on: pull_request
test-api
5m 4s
test-auth
2m 27s
test-web
6m 50s
test-db
1m 12s
test-scripts
1m 16s
test-packages
1m 25s
baseline
1m 11s
lint
1m 22s
selfhost-smoke
3m 27s
Matrix: test
Annotations
20 errors, 11 warnings, and 10 notices
|
src/(ee)/__tests__/workflow-cancel-execution.test.ts > cancelWorkflowExecution > should cancel a pending execution:
apps/api/src/(ee)/__tests__/workflow-cancel-execution.test.ts#L370
Error: Failed query: insert into "workflow_execution" ("id", "workflow_id", "contact_id", "organization_id", "allow_reentry", "status", "current_step_id", "definition_snapshot", "context", "trigger_event_id", "trigger_data", "waiting_for_event", "waiting_for_conditions", "wait_timeout_at", "wait_timeout_scheduler_name", "next_step_scheduled_at", "delay_scheduler_name", "error", "error_step_id", "retry_count", "started_at", "completed_at", "created_at", "updated_at") values ($1, $2, $3, $4, default, $5, $6, default, default, default, default, default, default, default, default, default, default, default, default, default, $7, default, default, default) returning "id", "workflow_id", "contact_id", "organization_id", "allow_reentry", "status", "current_step_id", "definition_snapshot", "context", "trigger_event_id", "trigger_data", "waiting_for_event", "waiting_for_conditions", "wait_timeout_at", "wait_timeout_scheduler_name", "next_step_scheduled_at", "delay_scheduler_name", "error", "error_step_id", "retry_count", "started_at", "completed_at", "created_at", "updated_at"
params: bdea00c3-5de5-4a85-9e0c-abacc5755491,api-wf-exec-cancel-workflow-1,api-wf-exec-cancel-contact-1,api-wf-exec-cancel-org-1,pending,trigger,2026-10-28T18:37:13.392Z
❯ NodePgPreparedQuery.queryWithCache ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/src/pg-core/session.ts:73:10
❯ ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/src/node-postgres/session.ts:154:18
❯ src/(ee)/__tests__/workflow-cancel-execution.test.ts:370:20
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { query: 'insert into "workflow_execution" ("id", "workflow_id", "contact_id", "organization_id", "allow_reentry", "status", "current_step_id", "definition_snapshot", "context", "trigger_event_id", "trigger_data", "waiting_for_event", "waiting_for_conditions", "wait_timeout_at", "wait_timeout_scheduler_name", "next_step_scheduled_at", "delay_scheduler_name", "error", "error_step_id", "retry_count", "started_at", "completed_at", "created_at", "updated_at") values ($1, $2, $3, $4, default, $5, $6, default, default, default, default, default, default, default, default, default, default, default, default, default, $7, default, default, default) returning "id", "workflow_id", "contact_id", "organization_id", "allow_reentry", "status", "current_step_id", "definition_snapshot", "context", "trigger_event_id", "trigger_data", "waiting_for_event", "waiting_for_conditions", "wait_timeout_at", "wait_timeout_scheduler_name", "next_step_scheduled_at", "delay_scheduler_name", "error", "error_step_id", "retry_count", "started_at", "completed_at", "created_at", "updated_at"', params: [ 'bdea00c3-5de5-4a85-9e0c-abacc5755491', 'api-wf-exec-cancel-workflow-1', 'api-wf-exec-cancel-contact-1', 'api-wf-exec-cancel-org-1', 'pending', 'trigger', '2026-10-28T18:37:13.392Z' ] }
Caused by: Caused by: error: insert or update on table "workflow_execution" violates foreign key constraint "workflow_execution_workflow_id_workflow_id_fk"
❯ ../../node_modules/.pnpm/pg-pool@3.14.0_pg@8.22.0/node_modules/pg-pool/index.js:45:11
❯ ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/drizzle-orm/node-postgres/session.js:124:18
❯ NodePgPreparedQuery.queryWithCache ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/drizzle-orm/pg-core/session.js:39:16
❯ ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/drizzle-orm/node-postgres/session.js:117:22
❯ src/(ee)/__tests__/workflow-cancel-execution.test.ts:370:20
⎯⎯⎯⎯⎯⎯⎯⎯��
|
|
src/(ee)/__tests__/workflow-cancel-execution.test.ts > cancelWorkflowExecution > should cancel a waiting execution and clean up timeout scheduler:
apps/api/src/(ee)/__tests__/workflow-cancel-execution.test.ts#L365
AssertionError: expected false to be true // Object.is equality
- Expected
+ Received
- true
+ false
❯ src/(ee)/__tests__/workflow-cancel-execution.test.ts:365:28
|
|
src/(ee)/__tests__/workflow-cancel-execution.test.ts > cancelWorkflowExecution > should cancel a paused execution and clean up delay scheduler:
apps/api/src/(ee)/__tests__/workflow-cancel-execution.test.ts#L335
AssertionError: expected false to be true // Object.is equality
- Expected
+ Received
- true
+ false
❯ src/(ee)/__tests__/workflow-cancel-execution.test.ts:335:28
|
|
src/(ee)/__tests__/workflow-cancel-execution.test.ts > cancelWorkflowExecution > should cancel an active execution:
apps/api/src/(ee)/__tests__/workflow-cancel-execution.test.ts#L289
AssertionError: expected false to be true // Object.is equality
- Expected
+ Received
- true
+ false
❯ src/(ee)/__tests__/workflow-cancel-execution.test.ts:289:28
|
|
src/__tests__/webhook-engagement-db.test.ts > Webhook: Engagement (real DB) — Unit 23 cross-org IDOR > negative: wrong webhook secret returns 401 and resumes nothing:
apps/api/src/__tests__/webhook-engagement-db.test.ts#L305
Error: Failed query: insert into "message_send" ("id", "organization_id", "contact_id", "aws_account_id", "channel", "source_type", "batch_send_id", "workflow_execution_id", "step_id", "recipient", "subject", "from", "from_name", "email_template_id", "body", "sender_id", "sms_segment_count", "variables", "message_id", "status", "sent_at", "delivered_at", "opened_at", "clicked_at", "bounced_at", "complained_at", "suppressed_at", "opted_out_at", "open_user_agent", "click_user_agent", "claimed_at", "error", "bounce_type", "bounce_sub_type", "clicked_url", "created_at") values ($1, $2, $3, $4, $5, $6, default, default, default, $7, default, default, default, default, default, default, default, default, $8, $9, $10, default, default, default, default, default, default, default, default, default, default, default, default, default, default, $11)
params: wh-engage-db-org-msg-X,wh-engage-db-org,wh-engage-db-contact,wh-engage-db-aws,email,workflow,wh-engage-db-org-c1@example.com,wh-engage-db-ses-X,delivered,2026-10-28T18:37:20.221Z,2026-10-28T18:37:20.221Z
❯ NodePgPreparedQuery.queryWithCache ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/src/pg-core/session.ts:73:10
❯ src/__tests__/webhook-engagement-db.test.ts:305:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { query: 'insert into "message_send" ("id", "organization_id", "contact_id", "aws_account_id", "channel", "source_type", "batch_send_id", "workflow_execution_id", "step_id", "recipient", "subject", "from", "from_name", "email_template_id", "body", "sender_id", "sms_segment_count", "variables", "message_id", "status", "sent_at", "delivered_at", "opened_at", "clicked_at", "bounced_at", "complained_at", "suppressed_at", "opted_out_at", "open_user_agent", "click_user_agent", "claimed_at", "error", "bounce_type", "bounce_sub_type", "clicked_url", "created_at") values ($1, $2, $3, $4, $5, $6, default, default, default, $7, default, default, default, default, default, default, default, default, $8, $9, $10, default, default, default, default, default, default, default, default, default, default, default, default, default, default, $11)', params: [ 'wh-engage-db-org-msg-X', 'wh-engage-db-org', 'wh-engage-db-contact', 'wh-engage-db-aws', 'email', 'workflow', 'wh-engage-db-org-c1@example.com', 'wh-engage-db-ses-X', 'delivered', '2026-10-28T18:37:20.221Z', '2026-10-28T18:37:20.221Z' ] }
Caused by: Caused by: error: insert or update on table "message_send" violates foreign key constraint "message_send_organization_id_organization_id_fk"
❯ ../../node_modules/.pnpm/pg-pool@3.14.0_pg@8.22.0/node_modules/pg-pool/index.js:45:11
❯ ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/drizzle-orm/node-postgres/session.js:113:20
❯ NodePgPreparedQuery.queryWithCache ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/drizzle-orm/pg-core/session.js:39:16
❯ src/__tests__/webhook-engagement-db.test.ts:305:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { length: 344, severity: 'ERROR', code: '23503', detail: 'Key (organization_id)=(wh-engage-db-org) is not present in table "organization".', hint: undefined, position: undefined, internalPosition: undefined, internalQuery: undefined, where: undefined, schema: 'public', table: 'message_send', dataType: undefined, constraint: 'message_send_organization_id_organization_id_fk', file: 'ri_triggers.c', routine: 'ri_ReportViolation' }
|
|
src/__tests__/webhook-engagement-db.test.ts > Webhook: Engagement (real DB) — Unit 23 cross-org IDOR > Open persists status='opened' and openedAt on the messageSend:
apps/api/src/__tests__/webhook-engagement-db.test.ts#L273
Error: Failed query: insert into "message_send" ("id", "organization_id", "contact_id", "aws_account_id", "channel", "source_type", "batch_send_id", "workflow_execution_id", "step_id", "recipient", "subject", "from", "from_name", "email_template_id", "body", "sender_id", "sms_segment_count", "variables", "message_id", "status", "sent_at", "delivered_at", "opened_at", "clicked_at", "bounced_at", "complained_at", "suppressed_at", "opted_out_at", "open_user_agent", "click_user_agent", "claimed_at", "error", "bounce_type", "bounce_sub_type", "clicked_url", "created_at") values ($1, $2, $3, $4, $5, $6, default, default, default, $7, default, default, default, default, default, default, default, default, $8, $9, $10, default, default, default, default, default, default, default, default, default, default, default, default, default, default, $11)
params: wh-engage-db-org-msg-X,wh-engage-db-org,wh-engage-db-contact,wh-engage-db-aws,email,workflow,wh-engage-db-org-c1@example.com,wh-engage-db-ses-X,delivered,2026-10-28T18:37:19.672Z,2026-10-28T18:37:19.672Z
❯ NodePgPreparedQuery.queryWithCache ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/src/pg-core/session.ts:73:10
❯ src/__tests__/webhook-engagement-db.test.ts:273:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { query: 'insert into "message_send" ("id", "organization_id", "contact_id", "aws_account_id", "channel", "source_type", "batch_send_id", "workflow_execution_id", "step_id", "recipient", "subject", "from", "from_name", "email_template_id", "body", "sender_id", "sms_segment_count", "variables", "message_id", "status", "sent_at", "delivered_at", "opened_at", "clicked_at", "bounced_at", "complained_at", "suppressed_at", "opted_out_at", "open_user_agent", "click_user_agent", "claimed_at", "error", "bounce_type", "bounce_sub_type", "clicked_url", "created_at") values ($1, $2, $3, $4, $5, $6, default, default, default, $7, default, default, default, default, default, default, default, default, $8, $9, $10, default, default, default, default, default, default, default, default, default, default, default, default, default, default, $11)', params: [ 'wh-engage-db-org-msg-X', 'wh-engage-db-org', 'wh-engage-db-contact', 'wh-engage-db-aws', 'email', 'workflow', 'wh-engage-db-org-c1@example.com', 'wh-engage-db-ses-X', 'delivered', '2026-10-28T18:37:19.672Z', '2026-10-28T18:37:19.672Z' ] }
Caused by: Caused by: error: insert or update on table "message_send" violates foreign key constraint "message_send_organization_id_organization_id_fk"
❯ ../../node_modules/.pnpm/pg-pool@3.14.0_pg@8.22.0/node_modules/pg-pool/index.js:45:11
❯ ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/drizzle-orm/node-postgres/session.js:113:20
❯ NodePgPreparedQuery.queryWithCache ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/drizzle-orm/pg-core/session.js:39:16
❯ src/__tests__/webhook-engagement-db.test.ts:273:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { length: 344, severity: 'ERROR', code: '23503', detail: 'Key (organization_id)=(wh-engage-db-org) is not present in table "organization".', hint: undefined, position: undefined, internalPosition: undefined, internalQuery: undefined, where: undefined, schema: 'public', table: 'message_send', dataType: undefined, constraint: 'message_send_organization_id_organization_id_fk', file: 'ri_triggers.c', routine: 'ri_ReportViolation' }
|
|
src/__tests__/webhook-engagement-db.test.ts > Webhook: Engagement (real DB) — Unit 23 cross-org IDOR > positive control: Click resumes with branch 'clicked' and persists clickedAt:
apps/api/src/__tests__/webhook-engagement-db.test.ts#L213
Error: Failed query: insert into "message_send" ("id", "organization_id", "contact_id", "aws_account_id", "channel", "source_type", "batch_send_id", "workflow_execution_id", "step_id", "recipient", "subject", "from", "from_name", "email_template_id", "body", "sender_id", "sms_segment_count", "variables", "message_id", "status", "sent_at", "delivered_at", "opened_at", "clicked_at", "bounced_at", "complained_at", "suppressed_at", "opted_out_at", "open_user_agent", "click_user_agent", "claimed_at", "error", "bounce_type", "bounce_sub_type", "clicked_url", "created_at") values ($1, $2, $3, $4, $5, $6, default, default, default, $7, default, default, default, default, default, default, default, default, $8, $9, $10, default, default, default, default, default, default, default, default, default, default, default, default, default, default, $11)
params: wh-engage-db-org-msg-X,wh-engage-db-org,wh-engage-db-contact,wh-engage-db-aws,email,workflow,wh-engage-db-org-c1@example.com,wh-engage-db-ses-X,delivered,2026-10-28T18:37:19.156Z,2026-10-28T18:37:19.156Z
❯ NodePgPreparedQuery.queryWithCache ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/src/pg-core/session.ts:73:10
❯ src/__tests__/webhook-engagement-db.test.ts:213:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { query: 'insert into "message_send" ("id", "organization_id", "contact_id", "aws_account_id", "channel", "source_type", "batch_send_id", "workflow_execution_id", "step_id", "recipient", "subject", "from", "from_name", "email_template_id", "body", "sender_id", "sms_segment_count", "variables", "message_id", "status", "sent_at", "delivered_at", "opened_at", "clicked_at", "bounced_at", "complained_at", "suppressed_at", "opted_out_at", "open_user_agent", "click_user_agent", "claimed_at", "error", "bounce_type", "bounce_sub_type", "clicked_url", "created_at") values ($1, $2, $3, $4, $5, $6, default, default, default, $7, default, default, default, default, default, default, default, default, $8, $9, $10, default, default, default, default, default, default, default, default, default, default, default, default, default, default, $11)', params: [ 'wh-engage-db-org-msg-X', 'wh-engage-db-org', 'wh-engage-db-contact', 'wh-engage-db-aws', 'email', 'workflow', 'wh-engage-db-org-c1@example.com', 'wh-engage-db-ses-X', 'delivered', '2026-10-28T18:37:19.156Z', '2026-10-28T18:37:19.156Z' ] }
Caused by: Caused by: error: duplicate key value violates unique constraint "message_send_pkey"
❯ ../../node_modules/.pnpm/pg-pool@3.14.0_pg@8.22.0/node_modules/pg-pool/index.js:45:11
❯ ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/drizzle-orm/node-postgres/session.js:113:20
❯ NodePgPreparedQuery.queryWithCache ../../node_modules/.pnpm/drizzle-orm@0.45.2_@neondatabase+serverless@1.1.0_@opentelemetry+api@1.9.0_@types+pg@8.20.0_kysely@0.29.4_pg@8.22.0/node_modules/drizzle-orm/pg-core/session.js:39:16
❯ src/__tests__/webhook-engagement-db.test.ts:213:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { length: 222, severity: 'ERROR', code: '23505', detail: 'Key (id)=(wh-engage-db-org-msg-X) already exists.', hint: undefined, position: undefined, internalPosition: undefined, internalQuery: undefined, where: undefined, schema: 'public', table: 'message_send', dataType: undefined, constraint: 'message_send_pkey', file: 'nbtinsert.c', routine: '_bt_check_unique' }
|
|
src/__tests__/webhook-engagement-db.test.ts > Webhook: Engagement (real DB) — Unit 23 cross-org IDOR > resumes ONLY the authenticated org's waiting execution (no cross-org IDOR):
apps/api/src/__tests__/webhook-engagement-db.test.ts#L189
AssertionError: expected "vi.fn()" to be called 1 times, but got 0 times
❯ src/__tests__/webhook-engagement-db.test.ts:189:33
|
|
src/__tests__/events-single.test.ts > POST /v1/events (single) > resolves contact by contactExternalId:
apps/api/src/__tests__/events-single.test.ts#L403
AssertionError: expected 400 to be 200 // Object.is equality
- Expected
+ Received
- 200
+ 400
❯ src/__tests__/events-single.test.ts:403:24
|
|
src/__tests__/events-single.test.ts > POST /v1/events (single) > resumes waiting executions and cancels timeout scheduler:
apps/api/src/__tests__/events-single.test.ts#L381
AssertionError: expected +0 to be 1 // Object.is equality
- Expected
+ Received
- 1
+ 0
❯ src/__tests__/events-single.test.ts:381:36
|
|
[parallel] src/actions/__tests__/audit-gaps.test.ts > subscribeContactToTopics — writes contact.topic_subscribed audit log > inserts a contact.topic_subscribed audit log row:
apps/web/src/actions/__tests__/audit-gaps.test.ts#L571
AssertionError: expected false to be true // Object.is equality
- Expected
+ Received
- true
+ false
❯ src/actions/__tests__/audit-gaps.test.ts:571:28
|
|
[parallel] src/actions/__tests__/audit-gaps.test.ts > revokeAccessAction — denial paths > denies a caller whose org does not own the AWS account:
apps/web/src/actions/__tests__/audit-gaps.test.ts#L539
AssertionError: expected { error: 'AWS account not found' } to match object { error: 'Access denied' }
- Expected
+ Received
{
- "error": "Access denied",
+ "error": "AWS account not found",
}
❯ src/actions/__tests__/audit-gaps.test.ts:539:20
|
|
[parallel] src/actions/__tests__/audit-gaps.test.ts > revokeAccessAction — denial paths > denies a caller without manage permission on the account:
apps/web/src/actions/__tests__/audit-gaps.test.ts#L532
AssertionError: expected { error: 'AWS account not found' } to match object { error: 'Access denied' }
- Expected
+ Received
{
- "error": "Access denied",
+ "error": "AWS account not found",
}
❯ src/actions/__tests__/audit-gaps.test.ts:532:20
|
|
[parallel] src/actions/__tests__/audit-gaps.test.ts > grantAccessAction — denial paths > denies granting to a user who is not a member of the account's org:
apps/web/src/actions/__tests__/audit-gaps.test.ts#L506
AssertionError: expected { error: 'AWS account not found' } to match object { Object (error) }
- Expected
+ Received
{
- "error": "User not found in organization",
+ "error": "AWS account not found",
}
❯ src/actions/__tests__/audit-gaps.test.ts:506:20
|
|
[parallel] src/actions/__tests__/audit-gaps.test.ts > grantAccessAction — denial paths > denies a caller whose org does not own the AWS account:
apps/web/src/actions/__tests__/audit-gaps.test.ts#L491
AssertionError: expected { error: 'AWS account not found' } to match object { error: 'Access denied' }
- Expected
+ Received
{
- "error": "Access denied",
+ "error": "AWS account not found",
}
❯ src/actions/__tests__/audit-gaps.test.ts:491:20
|
|
[parallel] src/actions/__tests__/audit-gaps.test.ts > grantAccessAction — denial paths > denies a caller without manage permission on the account:
apps/web/src/actions/__tests__/audit-gaps.test.ts#L477
AssertionError: expected { error: 'AWS account not found' } to match object { error: 'Access denied' }
- Expected
+ Received
{
- "error": "Access denied",
+ "error": "AWS account not found",
}
❯ src/actions/__tests__/audit-gaps.test.ts:477:20
|
|
[parallel] src/actions/__tests__/audit-gaps.test.ts > revokeAccessAction — writes permissions.revoked audit log > inserts a permissions.revoked audit log row with correct fields:
apps/web/src/actions/__tests__/audit-gaps.test.ts#L421
AssertionError: expected undefined to be true // Object.is equality
- Expected:
true
+ Received:
undefined
❯ src/actions/__tests__/audit-gaps.test.ts:421:54
|
|
[parallel] src/actions/__tests__/audit-gaps.test.ts > grantAccessAction — writes permissions.granted audit log > inserts a permissions.granted audit log row with correct fields:
apps/web/src/actions/__tests__/audit-gaps.test.ts#L388
AssertionError: expected undefined to be true // Object.is equality
- Expected:
true
+ Received:
undefined
❯ src/actions/__tests__/audit-gaps.test.ts:388:54
|
|
[parallel] src/actions/__tests__/api-keys-audit.test.ts > deleteApiKey audit logging > writes an api_key.revoked audit log row after successful deletion:
apps/web/src/actions/__tests__/api-keys-audit.test.ts#L190
AssertionError: expected false to be true // Object.is equality
- Expected
+ Received
- true
+ false
❯ src/actions/__tests__/api-keys-audit.test.ts:190:29
|
|
[parallel] src/actions/__tests__/api-keys-audit.test.ts > createApiKey audit logging > writes an api_key.created audit log row after successful key creation:
apps/web/src/actions/__tests__/api-keys-audit.test.ts#L157
AssertionError: expected false to be true // Object.is equality
- Expected
+ Received
- true
+ false
❯ src/actions/__tests__/api-keys-audit.test.ts:157:28
|
|
test-scripts
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
test (24.x)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
test-packages
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
baseline
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
test-db
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
test-auth
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
test (22.x)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
selfhost-smoke
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
test-api
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
test-web
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
test-scripts
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
test (24.x)
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
lint
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
test-packages
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
baseline
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
test-db
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
test-auth
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
test (22.x)
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
selfhost-smoke
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
test-api
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|