Skip to content

fix(db): make development schema pushes noninteractive #31798

fix(db): make development schema pushes noninteractive

fix(db): make development schema pushes noninteractive #31798

Triggered via pull request September 17, 2026 01:51
Status Failure
Total duration 4m 0s
Artifacts –

ci.yml

on: pull_request
Detect Version
Detect Version
Migrate Dev DB  /  Apply Database Migrations
Migrate Dev DB / Apply Database Migrations
Detect Desktop Changes
0s
Detect Desktop Changes
Matrix: Build AMD64
Matrix: Build ARM64 (GHCR Only)
Matrix: Test and Build / oauth-postgres
Matrix: Test and Build / test-shard
Test and Build  /  Lint and Test
45s
Test and Build / Lint and Test
Test and Build  /  Build App
3m 43s
Test and Build / Build App
Check Docs Changes
0s
Check Docs Changes
Matrix: Build Dev ECR
Deploy Trigger.dev (Dev)
0s
Deploy Trigger.dev (Dev)
Check Desktop Signing Secrets
0s
Check Desktop Signing Secrets
Migrate DB  /  Apply Database Migrations
Migrate DB / Apply Database Migrations
Promote Trigger.dev (Dev)
0s
Promote Trigger.dev (Dev)
Create Desktop Prerelease
0s
Create Desktop Prerelease
Promote Images
0s
Promote Images
Deploy Trigger.dev
0s
Deploy Trigger.dev
Desktop Prerelease Build  /  Build, Sign, Notarize
Desktop Prerelease Build / Build, Sign, Notarize
Matrix: Create GHCR Manifests
Process Docs  /  Process Documentation Embeddings
Process Docs / Process Documentation Embeddings
Promote Trigger.dev
0s
Promote Trigger.dev
Publish Desktop Prerelease
Publish Desktop Prerelease
Resolve Attestation Subjects
0s
Resolve Attestation Subjects
Prune Desktop Prereleases
Prune Desktop Prereleases
Matrix: Attest Images
Create GitHub Release
Create GitHub Release
Desktop Release  /  Build, Sign, Notarize
Desktop Release / Build, Sign, Notarize
Fit to window
Zoom out
Zoom in

Annotations

37 errors and 25 warnings
Test and Build / Lint and Test
Process completed with exit code 1.
Test and Build / Lint and Test
sim#lint:check: command (/home/runner/_work/sim/sim/packages/sim-cli) /home/runner/.bun/bin/bun run lint:check exited (1)
Test and Build / Lint and Test
Process completed with exit code 1.
Test and Build / Test (shard 2)
Process completed with exit code 1.
lib/knowledge/application/chat.test.ts > organization Search Assistant chat > rechecks OAuth restrictions after the run: apps/sim/lib/knowledge/application/chat.test.ts#L278
AssertionError: promise resolved "{ …(4) }" instead of rejecting - Expected + Received - Error { - "message": "rejected promise", + { + "chatId": "private-chat", + "citations": [], + "content": "The field kit is in the violet suitcase.", + "conversationUrl": "https://sim.example/o/org-1/chat/private-chat", } ❯ lib/knowledge/application/chat.test.ts:278:27
lib/credential-groups/application/configure-organization-mcp.test.ts > organization Databricks setup > creates the fully configured provider with canonical organization scope in one mutation: apps/sim/lib/credential-groups/application/configure-organization-mcp.test.ts#L220
AssertionError: expected "recordAudit" to be called with arguments: [ ObjectContaining{…} ] Received: 1st recordAudit call: [ - ObjectContaining { + { + "action": "credential_group.updated", "actorId": "admin-user", + "description": "Added Databricks to connected accounts", "metadata": { + "actor": { + "kind": "session", + "userId": "admin-user", + }, + "operation": "organization_accounts.mcp.add", "organizationId": "customer-org", }, + "request": undefined, "resourceId": "customer-group", + "resourceName": "Connected accounts", + "resourceType": "credential_group", }, ] Number of calls: 1 ❯ lib/credential-groups/application/configure-organization-mcp.test.ts:220:31
lib/credential-groups/application/configure-organization-mcp.test.ts > organization Databricks setup > updates only the organization provider and invalidates affected connections: apps/sim/lib/credential-groups/application/configure-organization-mcp.test.ts#L179
AssertionError: expected "recordAudit" to be called with arguments: [ ObjectContaining{…} ] Received: 1st recordAudit call: [ - ObjectContaining { + { + "action": "credential_group.updated", "actorId": "admin-user", + "description": "Configured the organization Databricks provider", "metadata": { + "actor": { + "kind": "session", + "userId": "admin-user", + }, + "operation": "organization_accounts.mcp.configure", "organizationId": "customer-org", }, + "request": undefined, "resourceId": "customer-group", + "resourceName": "Connected accounts", + "resourceType": "credential_group", }, ] Number of calls: 1 ❯ lib/credential-groups/application/configure-organization-mcp.test.ts:179:31
app/api/knowledge/utils.test.ts > Knowledge Utils > generateEmbeddings > should throw error when no API configuration provided: apps/sim/app/api/knowledge/utils.test.ts#L343
AssertionError: expected [Function] to throw error including 'OPENAI_API_KEY is not configured' but got 'Semantic retrieval is unavailable bec…' Expected: "OPENAI_API_KEY is not configured" Received: "Semantic retrieval is unavailable because its embedding provider is not configured." ❯ app/api/knowledge/utils.test.ts:343:81
Test and Build / Test (shard 2)
@sim/app#test: command (/home/runner/_work/sim/sim/apps/sim) /home/runner/.bun/bin/bun run test exited (1)
app/api/workspaces/invitations/route.test.ts > POST /api/workspaces/invitations/batch > creates an external workspace invitation for users already in another organization: apps/sim/app/api/workspaces/invitations/route.test.ts#L424
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ app/api/workspaces/invitations/route.test.ts:424:29
app/api/workspaces/invitations/route.test.ts > POST /api/workspaces/invitations/batch > reports org-owned invites as failed when the organization has no available seats: apps/sim/app/api/workspaces/invitations/route.test.ts#L379
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ app/api/workspaces/invitations/route.test.ts:379:29
app/api/workspaces/invitations/route.test.ts > POST /api/workspaces/invitations/batch > blocks invites for grandfathered workspaces without a team plan: apps/sim/app/api/workspaces/invitations/route.test.ts#L331
AssertionError: expected 500 to be 403 // Object.is equality - Expected + Received - 403 + 500 ❯ app/api/workspaces/invitations/route.test.ts:331:29
app/api/workspaces/invitations/route.test.ts > POST /api/workspaces/invitations/batch > blocks invites for personal workspaces with an upgrade prompt: apps/sim/app/api/workspaces/invitations/route.test.ts#L300
AssertionError: expected 500 to be 403 // Object.is equality - Expected + Received - 403 + 500 ❯ app/api/workspaces/invitations/route.test.ts:300:29
app/api/workspaces/invitations/route.test.ts > POST /api/workspaces/invitations/batch > keeps unexpected database details out of per-email failures: apps/sim/app/api/workspaces/invitations/route.test.ts#L266
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ app/api/workspaces/invitations/route.test.ts:266:29
app/api/knowledge/search/utils.test.ts > Knowledge Search Utils > generateSearchEmbedding > should throw error when no API configuration provided: apps/sim/app/api/knowledge/search/utils.test.ts#L742
AssertionError: expected [Function] to throw error including 'OPENAI_API_KEY is not configured' but got 'Semantic retrieval is unavailable bec…' Expected: "OPENAI_API_KEY is not configured" Received: "Semantic retrieval is unavailable because its embedding provider is not configured." ❯ app/api/knowledge/search/utils.test.ts:742:83
lib/workflows/application/operations.test.ts > workflow operation registry > reserves manual execution for personal keys with write access: apps/sim/lib/workflows/application/operations.test.ts#L145
AssertionError: expected { Object (id, oauthScope, ...) } to match object { minimumRole: 'write', …(2) } (4 matching properties omitted from actual) - Expected + Received { "minimumRole": "write", "principalKinds": [ "personal_api_key", "oauth_access_token", + "delegated", ], "workspaceApiKey": "deny", } ❯ lib/workflows/application/operations.test.ts:145:25
app/_shell/desktop-title-bar-surfaces.test.ts > desktop title-bar surface audit > clears the lane for panels that embed pages away from the lights: apps/sim/app/_shell/desktop-title-bar-surfaces.test.ts#L169
AssertionError: expected '\'use client\'\n\nimport { type Compo…' to contain '[--workspace-content-title-bar-inset:…' - Expected + Received - [--workspace-content-title-bar-inset:0px] + 'use client' + + import { type ComponentProps, forwardRef, memo, useCallback, useRef, useState } from 'react' + import { cn } from '@sim/emcn' + import type { WorkspaceSearchFilters } from '@/lib/api/contracts/knowledge' + import type { MothershipTableViewContext } from '@/lib/api/contracts/mothership-resources' + import type { FilePreviewSession } from '@/lib/mothership/request/session' + import { getChatResourceSelectionId } from '@/lib/mothership/resources/types' + import type { FileDownloadSource } from '@/lib/uploads/client/download' + import { getFileExtension } from '@/lib/uploads/utils/file-utils' + import { SIM_PAGE_CONTENT_TYPE } from '@/lib/workspace-files/page-compile' + import type { PreviewMode } from '@/app/workspace/[workspaceId]/files/components/file-viewer' + import { + isCsvStreamOnly, + isMarkdownFile, + RICH_PREVIEWABLE_EXTENSIONS, + } from '@/app/workspace/[workspaceId]/files/components/file-viewer' + import { ChatPanelContent } from '@/app/workspace/[workspaceId]/home/components/chat-panel-layout' + import { useMothershipResources } from '@/app/workspace/[workspaceId]/home/components/mothership-resources-context' + import type { BrowserPanelOverlayController } from '@/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/browser-session/browser-panel-occlusion' + import { BrowserSession } from '@/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/browser-session/browser-session' + import { GenericResourceContent } from '@/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/generic-resource-content' + import { SearchResourceContent } from '@/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/search-resource-content' + import { TerminalSession } from '@/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/terminal-session/terminal-session' + import { ResourceWorkspaceHost } from '@/app/workspace/[workspaceId]/home/components/resource-workspace-host' + import { hasRenderableFilePreviewContent } from '@/app/workspace/[workspaceId]/home/hooks/preview' + import type { + GenericResourceData, + MothershipResource, + MothershipResourceType, + } from '@/app/workspace/[workspaceId]/home/types' + import { useUserPermissionsContext } from '@/app/workspace/[workspaceId]/providers/workspace-permissions-provider' + import { useWorkspacePermissionsQuery } from '@/hooks/queries/workspace' + import { useWorkspaceFiles } from '@/hooks/queries/workspace-files' + import { useUserPermissions } from '@/hooks/use-user-permissions' + import { ResourceActions, ResourceContent, ResourceTabs } from './components' + + + function isPersistentPanel(resource: MothershipResource): boolean { + return resource.type === 'browser' || resource.type === 'terminal' + } + + + function persistentPanelResources(resources: MothershipResource[]): MothershipResource[] { + const panels: MothershipResource[] = [] + const seen = new Set<MothershipResourceType>() + for (const resource of resources) { + if (!isPersistentPanel(resource) || seen.has(resource.type)) continue + seen.add(resource.type) + panels.push(resource) + } + return panels + } + + const PREVIEW_CYCLE: Record<PreviewMode, PreviewMode> = { + editor: 'split', + split: 'preview', + preview: 'editor', + } as const + + + function shouldShowStreamingFilePanel( + previewSession: FilePreviewSession | null | undefined, + active: MothershipResource | null + ): boolean { + if (!previewSession || !hasRenderableFilePreviewContent(previewSession) || !active) return false + if (active.id === 'streaming-file') return true + if (active.type !== 'file') return false + if (active.id && previewSession.fileId === active.id) { +
background/drain-governed-subject.test.ts > draining another dispatch’s pre-stamped marker: apps/sim/blocks/blocks/enrichment.ts#L13
TypeError: Cannot read properties of undefined (reading 'flatMap') ❯ blocks/blocks/enrichment.ts:13:40 ❯ blocks/registry-maps.ts:79:1 ❯ lib/integrations/tool-catalog.ts:3:1
Test and Build / Test (shard 3)
@sim/app#test: command (/home/runner/_work/sim/sim/apps/sim) /home/runner/.bun/bin/bun run test exited (1)
Test and Build / PostgreSQL integration (migrate)
Process completed with exit code 1.
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'anthropic' → 'openai', using 'files', streaming=true: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'anthropic' → 'openai', using 'files', streaming=false: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'openai' → 'anthropic', using 'userPrompt', streaming=true: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'openai' → 'anthropic', using 'userPrompt', streaming=false: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'anthropic' → 'anthropic', using 'messages', streaming=true: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'anthropic' → 'anthropic', using 'messages', streaming=false: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'openai' → 'openai', using 'files', streaming=true: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'openai' → 'openai', using 'files', streaming=false: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
Test and Build / PostgreSQL integration (push)
Process completed with exit code 1.
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'anthropic' → 'openai', using 'files', streaming=true: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'anthropic' → 'openai', using 'files', streaming=false: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'openai' → 'anthropic', using 'userPrompt', streaming=true: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'openai' → 'anthropic', using 'userPrompt', streaming=false: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'anthropic' → 'anthropic', using 'messages', streaming=true: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'anthropic' → 'anthropic', using 'messages', streaming=false: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'openai' → 'openai', using 'files', streaming=true: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
executor/handlers/agent/memory-harness.postgres.test.ts > Agent memory through PostgreSQL, storage, and provider transports > 'openai' → 'openai', using 'files', streaming=false: apps/sim/executor/handlers/agent/memory-harness.postgres.test.ts#L762
AssertionError: promise resolved "'NO_FILE'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "NO_FILE" ❯ executor/handlers/agent/memory-harness.postgres.test.ts:762:64
Test and Build / Lint and Test
Skipping sticky disk commit due to previous step failures
Test and Build / Lint and Test
- Step: unknown (failed)
Test and Build / Lint and Test
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Lint and Test
Skipping sticky disk commit due to previous step failures
Test and Build / Lint and Test
- Step: unknown (failed)
Test and Build / Lint and Test
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Lint and Test
Skipping sticky disk commit due to previous step failures
Test and Build / Lint and Test
- Step: unknown (failed)
Test and Build / Lint and Test
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Test (shard 2)
Skipping sticky disk commit due to previous step failures
Test and Build / Test (shard 2)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Test (shard 2)
Skipping sticky disk commit due to previous step failures
Test and Build / Test (shard 2)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Test (shard 2)
Skipping sticky disk commit due to previous step failures
Test and Build / Test (shard 2)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Test (shard 3)
Skipping sticky disk commit due to previous step failures
Test and Build / Test (shard 3)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Test (shard 3)
Skipping sticky disk commit due to previous step failures
Test and Build / Test (shard 3)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Test (shard 3)
Skipping sticky disk commit due to previous step failures
Test and Build / Test (shard 3)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / PostgreSQL integration (migrate)
Skipping sticky disk commit due to previous step failures
Test and Build / PostgreSQL integration (migrate)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / PostgreSQL integration (push)
Skipping sticky disk commit due to previous step failures
Test and Build / PostgreSQL integration (push)
Found 2 failed/cancelled steps in previous workflow steps