ISSUE 35864 — REAL SERVER STARTUP CAPTURE — BEFORE Commit: 95cb068c10a6cf0b33eed0a0cab3b298763fe852 Environment: Linux x86_64; Node 26.12.1; native SQLite; loopback HTTP. Fresh synthetic database for every case; live data seeding disabled. Driver command for each case: node src/bin.ts serve --base-dir --host 127.0.0.1 --port 18764 Seed: run this checkout's migrations through 63; insert a valid legacy-linked thread projection and V2 thread.created event. Control adds no damage. Projection adds a thread projection with payload_json=''. Event adds a V2 thread.created with payload_json=''. === CASE: control === Observed process / persisted state: { "side": "before", "case": "control", "sha": "95cb068c10a6cf0b33eed0a0cab3b298763fe852", "ready": true, "httpStatus": 200, "exitCode": null, "ledger": 87, "validProjection": [ { "host": "github.com", "repository": "acme/web", "number": 42, "url": "https://github.com/acme/web/pull/42", "source": "manual", "linkedAt": "2026-09-01T00:00:00.000Z", "snapshot": null, "stack": null } ], "validEvent": [ { "host": "github.com", "repository": "acme/web", "number": 42, "url": "https://github.com/acme/web/pull/42", "source": "manual", "linkedAt": "2026-09-01T00:00:00.000Z", "snapshot": null, "stack": null } ], "damagedPayload": null, "malformedJSON": false } Captured real server stdout/stderr (pairing credentials omitted): [03:26:09.159] INFO (#65): Running database migrations [03:26:09.168] INFO (#65): Upgrading database migration: 64_CanonicalizeThreadPullRequestLinks progress: 1 of 24 [03:26:09.179] INFO (#65): Upgrading database migration: 65_CodexUsageNativeTurnIndex progress: 2 of 24 [03:26:09.184] INFO (#65): Upgrading database migration: 66_RepairClientSettlementTimestamps progress: 3 of 24 [03:26:09.189] INFO (#65): Upgrading database migration: 67_WebhookDedupe progress: 4 of 24 [03:26:09.198] INFO (#65): Upgrading database migration: 68_ShellStopRequestIndex progress: 5 of 24 [03:26:09.202] INFO (#65): Upgrading database migration: 69_ThreadMessageSearch progress: 6 of 24 [03:26:09.208] INFO (#65): Upgrading database migration: 70_PeerLinks progress: 7 of 24 [03:26:09.212] INFO (#65): Upgrading database migration: 71_PeerLinkFence progress: 8 of 24 [03:26:09.217] INFO (#65): Upgrading database migration: 72_WaitingLinkRequestIndex progress: 9 of 24 [03:26:09.237] INFO (#65): Upgrading database migration: 73_ActiveTurnItemIndexes progress: 10 of 24 [03:26:09.241] INFO (#65): Upgrading database migration: 74_ExcludeAttachmentPlaceholdersFromSearch progress: 11 of 24 [03:26:09.247] INFO (#65): Upgrading database migration: 75_SubagentDeliveryState progress: 12 of 24 [03:26:09.254] INFO (#65): Upgrading database migration: 76_ProjectionProjectsPinArchive progress: 13 of 24 [03:26:09.260] INFO (#65): Upgrading database migration: 77_RepairBooleanSettledOverride progress: 14 of 24 [03:26:09.263] INFO (#65): Upgrading database migration: 78_DropOrchestrationEventCorrelationIndex progress: 15 of 24 [03:26:09.266] INFO (#65): Upgrading database migration: 79_DelegatedRecoveryIndexes progress: 16 of 24 [03:26:09.269] INFO (#65): Upgrading database migration: 80_ScheduledTaskThreadMode progress: 17 of 24 [03:26:09.275] INFO (#65): Upgrading database migration: 81_ProjectionMessageSearchText progress: 18 of 24 [03:26:09.288] INFO (#65): Upgrading database migration: 82_TurnItemConversationIndex progress: 19 of 24 [03:26:09.291] INFO (#65): Upgrading database migration: 83_CommandReadIndexes progress: 20 of 24 [03:26:09.294] INFO (#65): Upgrading database migration: 84_LastExecutedRunIndex progress: 21 of 24 [03:26:09.296] INFO (#65): Upgrading database migration: 85_TurnItemCounts progress: 22 of 24 [03:26:09.300] INFO (#65): Upgrading database migration: 86_QueuedTurnInputIndex progress: 23 of 24 [03:26:09.302] INFO (#65): Upgrading database migration: 87_ProjectionProjectsCustomTitle progress: 24 of 24 [03:26:09.307] INFO (#65): Migrations ran successfully migrations: [ '64_CanonicalizeThreadPullRequestLinks', '65_CodexUsageNativeTurnIndex', '66_RepairClientSettlementTimestamps', '67_WebhookDedupe', '68_ShellStopRequestIndex', '69_ThreadMessageSearch', '70_PeerLinks', '71_PeerLinkFence', '72_WaitingLinkRequestIndex', '73_ActiveTurnItemIndexes', '74_ExcludeAttachmentPlaceholdersFromSearch', '75_SubagentDeliveryState', '76_ProjectionProjectsPinArchive', '77_RepairBooleanSettledOverride', '78_DropOrchestrationEventCorrelationIndex', '79_DelegatedRecoveryIndexes', '80_ScheduledTaskThreadMode', '81_ProjectionMessageSearchText', '82_TurnItemConversationIndex', '83_CommandReadIndexes', '84_LastExecutedRunIndex', '85_TurnItemCounts', '86_QueuedTurnInputIndex', '87_ProjectionProjectsCustomTitle' ] [03:26:09.323] WARN (#79): process group metrics are not exported: sample failed ResourceTelemetryRefreshFailed: Resource telemetry operation 'refresh' failed. at file:///apps/server/src/resourceTelemetry/ResourceTelemetry.ts:457:9 at file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/internal/effect.js:152:23 at Array.map () at file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/internal/effect.js:149:33 at file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/Function.js:79:18 { [cause]: NativeTelemetryUnavailable: Resource monitor is unavailable: sidecar is not running at file:///apps/server/src/resourceTelemetry/NativeTelemetryClient.ts:921:21 } operation: refresh [03:26:10.020] WARN (#594): This host blocks the sandbox T3's browser runs in, so browser tabs and HTML previews will not start. Run `sudo env "PATH=$PATH" t3 browser setup --base-dir /run-20261113-032606/before-control/home` once to allow it. [03:26:10.179] INFO (#594): Listening on http://127.0.0.1:18764 [03:26:10.207] INFO (#591): agent activity publishing standby; waiting for T3 Connect link reconciliation [03:26:10.208] INFO (#591): V2 orchestration recovery completed { terminalizedRuns: 0, stoppedSessions: 0, closedRequests: 0, retiredEffects: 0, requeuedEffects: 0 } [03:26:10.333] WARN (#557): pull request sync skipped { count: 1, key: 'synthetic-project\x00github.com/acme/web#42', reason: "Change requests cannot be browsed for this project's host yet." } T3 Code server is ready. Connection string: http://127.0.0.1:18764 [03:26:10.505] INFO (#27): V2 orchestration shutdown reconciliation completed { terminalizedRuns: 0, stoppedSessions: 0, closedRequests: 0, retiredEffects: 0, requeuedEffects: 0 } [03:26:10.510] WARN (#960): keep-awake run event stream failed { cause: 'InterruptError: All fibers interrupted without error\n' + ' at serverActivation.forkParkedFiber (file:///apps/server/src/serverActivation.ts:29:51)\n' + ' at serverActivation.forkParkedFiber (definition) (file:///apps/server/src/serverActivation.ts:12:39)\n' + ' at server.runServerCommand (file:///apps/server/src/cli/server.ts:91:5)\n' + ' at server.runServerCommand (definition) (file:///apps/server/src/cli/server.ts:19:33) {\n' + ' [cause]: InterruptCause: The fiber was interrupted by:\n' + ' at fiber (unknown)\n' + '}' } === CASE: projection === Observed process / persisted state: { "side": "before", "case": "projection", "sha": "95cb068c10a6cf0b33eed0a0cab3b298763fe852", "ready": false, "httpStatus": null, "exitCode": 1, "ledger": 63, "validProjection": null, "validEvent": null, "damagedPayload": "", "malformedJSON": true } Captured real server stdout/stderr (pairing credentials omitted): [03:26:16.914] INFO (#64): Running database migrations [03:26:16.921] INFO (#64): Upgrading database migration: 64_CanonicalizeThreadPullRequestLinks progress: 1 of 24 [03:26:17.712] ERROR (#2): MigrationError: Migration "64_CanonicalizeThreadPullRequestLinks" failed at file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/sql/Migrator.js:112:79 at file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/internal/effect.js:152:23 at Array.map () at file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/internal/effect.js:149:33 at file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/Function.js:79:18 at runMigrations (file:///apps/server/src/persistence/Sqlite.ts:101:35) at runMigrations (definition) (file:///apps/server/src/persistence/Migrations.ts:271:37) at Sqlite.setup (file:///apps/server/src/persistence/Sqlite.ts:98:20) at server.runServerCommand (file:///apps/server/src/cli/server.ts:91:5) at server.runServerCommand (definition) (file:///apps/server/src/cli/server.ts:19:33) { [cause]: effect/sql/SqlError: Failed to execute statement at failed (file:///packages/shared/src/nodeSqliteClient.ts:299:3) at failedWith (file:///packages/shared/src/nodeSqliteClient.ts:305:3) at Object.resume (file:///packages/shared/src/nodeSqliteClient.ts:408:33) at Worker. (file:///packages/shared/src/nodeSqliteClient.ts:383:15) at Worker.emit (node:events:514:20) at MessagePort. (node:internal/worker:354:14) at [nodejs.internal.kHybridDispatch] (node:internal/event_target:872:20) at MessagePort. (node:internal/per_context/messageport:23:28) { [cause]: effect/sql/SqlError/UnknownError: Failed to execute statement at classifySqliteError (file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/sql/SqlError.js:486:16) at classifyError (file:///packages/shared/src/nodeSqliteClient.ts:155:10) at failed (file:///packages/shared/src/nodeSqliteClient.ts:299:26) at failedWith (file:///packages/shared/src/nodeSqliteClient.ts:305:3) at Object.resume (file:///packages/shared/src/nodeSqliteClient.ts:408:33) at Worker. (file:///packages/shared/src/nodeSqliteClient.ts:383:15) at Worker.emit (node:events:514:20) at MessagePort. (node:internal/worker:354:14) at [nodejs.internal.kHybridDispatch] (node:internal/event_target:872:20) at MessagePort. (node:internal/per_context/messageport:23:28) { [cause]: Error: malformed JSON at failedWith (file:///packages/shared/src/nodeSqliteClient.ts:306:19) at Object.resume (file:///packages/shared/src/nodeSqliteClient.ts:408:33) at Worker. (file:///packages/shared/src/nodeSqliteClient.ts:383:15) at Worker.emit (node:events:514:20) at MessagePort. (node:internal/worker:354:14) at [nodejs.internal.kHybridDispatch] (node:internal/event_target:872:20) at MessagePort. (node:internal/per_context/messageport:23:28) } } } === CASE: event === Observed process / persisted state: { "side": "before", "case": "event", "sha": "95cb068c10a6cf0b33eed0a0cab3b298763fe852", "ready": false, "httpStatus": null, "exitCode": 1, "ledger": 63, "validProjection": null, "validEvent": null, "damagedPayload": "", "malformedJSON": true } Captured real server stdout/stderr (pairing credentials omitted): [03:26:21.175] INFO (#64): Running database migrations [03:26:21.182] INFO (#64): Upgrading database migration: 64_CanonicalizeThreadPullRequestLinks progress: 1 of 24 [03:26:21.966] ERROR (#2): MigrationError: Migration "64_CanonicalizeThreadPullRequestLinks" failed at file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/sql/Migrator.js:112:79 at file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/internal/effect.js:152:23 at Array.map () at file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/internal/effect.js:149:33 at file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/Function.js:79:18 at runMigrations (file:///apps/server/src/persistence/Sqlite.ts:101:35) at runMigrations (definition) (file:///apps/server/src/persistence/Migrations.ts:271:37) at Sqlite.setup (file:///apps/server/src/persistence/Sqlite.ts:98:20) at server.runServerCommand (file:///apps/server/src/cli/server.ts:91:5) at server.runServerCommand (definition) (file:///apps/server/src/cli/server.ts:19:33) { [cause]: effect/sql/SqlError: Failed to execute statement at failed (file:///packages/shared/src/nodeSqliteClient.ts:299:3) at failedWith (file:///packages/shared/src/nodeSqliteClient.ts:305:3) at Object.resume (file:///packages/shared/src/nodeSqliteClient.ts:408:33) at Worker. (file:///packages/shared/src/nodeSqliteClient.ts:383:15) at Worker.emit (node:events:514:20) at MessagePort. (node:internal/worker:354:14) at [nodejs.internal.kHybridDispatch] (node:internal/event_target:872:20) at MessagePort. (node:internal/per_context/messageport:23:28) { [cause]: effect/sql/SqlError/UnknownError: Failed to execute statement at classifySqliteError (file:///node_modules/.pnpm/effect@4.1.3/node_modules/effect/dist/sql/SqlError.js:486:16) at classifyError (file:///packages/shared/src/nodeSqliteClient.ts:155:10) at failed (file:///packages/shared/src/nodeSqliteClient.ts:299:26) at failedWith (file:///packages/shared/src/nodeSqliteClient.ts:305:3) at Object.resume (file:///packages/shared/src/nodeSqliteClient.ts:408:33) at Worker. (file:///packages/shared/src/nodeSqliteClient.ts:383:15) at Worker.emit (node:events:514:20) at MessagePort. (node:internal/worker:354:14) at [nodejs.internal.kHybridDispatch] (node:internal/event_target:872:20) at MessagePort. (node:internal/per_context/messageport:23:28) { [cause]: Error: malformed JSON at failedWith (file:///packages/shared/src/nodeSqliteClient.ts:306:19) at Object.resume (file:///packages/shared/src/nodeSqliteClient.ts:408:33) at Worker. (file:///packages/shared/src/nodeSqliteClient.ts:383:15) at Worker.emit (node:events:514:20) at MessagePort. (node:internal/worker:354:14) at [nodejs.internal.kHybridDispatch] (node:internal/event_target:872:20) at MessagePort. (node:internal/per_context/messageport:23:28) } } }