Skip to content

feat(network): add organization outbound routing #31326

feat(network): add organization outbound routing

feat(network): add organization outbound routing #31326

Triggered via pull request September 12, 2026 00:06
Status Failure
Total duration 3m 10s
Artifacts

ci.yml

on: pull_request
Detect Version
0s
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
2m 23s
Test and Build / Lint and Test
Test and Build  /  Build App
2m 52s
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
Create Desktop Prerelease
0s
Create Desktop Prerelease
Promote Images
0s
Promote Images
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
Publish Desktop Prerelease
0s
Publish Desktop Prerelease
Resolve Attestation Subjects
Resolve Attestation Subjects
Prune Desktop Prereleases
0s
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

21 errors and 12 warnings
Test and Build / Test (shard 2)
Process completed with exit code 1.
app/api/knowledge/utils.test.ts > Knowledge Utils > generateEmbeddings > should fallback to OpenAI when no Azure config provided: apps/sim/lib/embeddings/client.ts#L610
EmbeddingAPIError: Embedding API failed: 401 ❯ maxRetries lib/embeddings/client.ts:610:25 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 401, isBYOK: false, quotaExhausted: false, retryAfterMs: undefined, headers: { headers: { constructor: 'Function<Map>', get: 'Function<get>', set: 'Function<set>', has: 'Function<has>', delete: 'Function<delete>', clear: 'Function<clear>', entries: 'Function<entries>', forEach: 'Function<forEach>', keys: 'Function<keys>', size: 15, values: 'Function<values>' }, setCookies: [ '__cf_bm=ug8XNsqskiCV_3omkRyepwKmI53rXRofBXc5qB_n0Ds-1789171653.9607198-1.0.1.1-WJMrWNTSruns42EsaiJmlGqESTlFqWIxMoKkod_9sIzOnG3aTD5UPMTYD4nBOEiYcsiAmREXbCx8TcRfruKRYF.hes26GLI8s82F966nzXDT_8q_jx6mbWHlBpogcFgf; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 12 Sep 2026 00:37:34 GMT', '_cfuvid=xqbvUig9uNFSO8dC_RTZIIKUErlouHb.fgbGeaLrtFk-1789171653.9607198-1.0.1.1-knJmKriHvyXO6fl8UKYeR05lgUpOhmY2J.tDh85yyuM; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com' ], constructor: 'Function<SecureFetchHeaders>', get: 'Function<get>', getSetCookie: 'Function<getSetCookie>', toRecord: 'Function<toRecord>' } }
app/api/knowledge/utils.test.ts > Knowledge Utils > generateEmbeddings > should use Azure OpenAI when Azure config is provided: apps/sim/lib/embeddings/client.ts#L610
EmbeddingAPIError: Embedding API failed: 401 ❯ maxRetries lib/embeddings/client.ts:610:25 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 401, isBYOK: false, quotaExhausted: false, retryAfterMs: undefined, headers: { headers: { constructor: 'Function<Map>', get: 'Function<get>', set: 'Function<set>', has: 'Function<has>', delete: 'Function<delete>', clear: 'Function<clear>', entries: 'Function<entries>', forEach: 'Function<forEach>', keys: 'Function<keys>', size: 5, values: 'Function<values>' }, setCookies: [], constructor: 'Function<SecureFetchHeaders>', get: 'Function<get>', getSetCookie: 'Function<getSetCookie>', toRecord: 'Function<toRecord>' } }
app/api/knowledge/utils.test.ts > Knowledge Utils > generateEmbeddings > should return same length as input: apps/sim/lib/embeddings/client.ts#L610
EmbeddingAPIError: Embedding API failed: 401 ❯ maxRetries lib/embeddings/client.ts:610:25 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 401, isBYOK: false, quotaExhausted: false, retryAfterMs: undefined, headers: { headers: { constructor: 'Function<Map>', get: 'Function<get>', set: 'Function<set>', has: 'Function<has>', delete: 'Function<delete>', clear: 'Function<clear>', entries: 'Function<entries>', forEach: 'Function<forEach>', keys: 'Function<keys>', size: 15, values: 'Function<values>' }, setCookies: [ '__cf_bm=mptvOvc2YxNVrRpJ_NAoJGniIIktOLtK.OGOUx5Va4Q-1789171653.178546-1.0.1.1-n50Nmmc4hnvDRb_3RtvqUg_qSwzqK.QOv4BARiB7OAduv4XXkhjKkiWXSaegCQxXgsQFQXJA45MLKWxcUQ3A9wK7xNf29ZFdn68AX.8w0kho_Re.ooP3eg5swnwJy9Vv; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 12 Sep 2026 00:37:33 GMT', '_cfuvid=heNNnV0aJx_1Ya8AKQPthNxDUNksZmmspD8wYKlv6QM-1789171653.178546-1.0.1.1-9HpS38m.uolfP7szlZ.htwBX_D96HpFduR4k2J5txY4; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com' ], constructor: 'Function<SecureFetchHeaders>', get: 'Function<get>', getSetCookie: 'Function<getSetCookie>', toRecord: 'Function<toRecord>' } }
app/api/knowledge/utils.test.ts > Knowledge Utils > processDocumentAsync > should insert embeddings before updating document counters: apps/sim/lib/knowledge/documents/processing-provider-deferral.ts#L34
Error: [vitest] No "ProviderAdmissionStorageError" export is defined on the "@/lib/core/rate-limiter/provider-admission" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: vi.mock(import("@/lib/core/rate-limiter/provider-admission"), async (importOriginal) => { const actual = await importOriginal() return { ...actual, // your mocked methods } }) ❯ getProviderCapacityDeferral lib/knowledge/documents/processing-provider-deferral.ts:34:35 ❯ Module.processDocumentAsync lib/knowledge/documents/service.ts:2034:9 ❯ app/api/knowledge/utils.test.ts:217:7
lib/atlassian/assistant.test.ts > Atlassian Assistant resource selection > refuses an unmatched confluence site without a provider API call: apps/sim/lib/atlassian/assistant.test.ts#L115
AssertionError: expected [Function] to throw error including 'Could not match' but got 'Failed to fetch Confluence accessible…' Expected: "Could not match" Received: "Failed to fetch Confluence accessible resources: 401 - {"code":401,"message":"Unauthorized"}" ❯ lib/atlassian/assistant.test.ts:115:7
lib/atlassian/assistant.test.ts > Atlassian Assistant resource selection > refuses an unmatched jira site without a provider API call: apps/sim/lib/atlassian/assistant.test.ts#L115
AssertionError: expected [Function] to throw error including 'Could not match' but got 'Failed to fetch Jira accessible resou…' Expected: "Could not match" Received: "Failed to fetch Jira accessible resources: 401 - {"code":401,"message":"Unauthorized"}" ❯ lib/atlassian/assistant.test.ts:115:7
lib/atlassian/assistant.test.ts > Atlassian Assistant resource selection > uses token-authorized confluence discovery without sending credentials to the selected domain: apps/sim/lib/atlassian/discovery.ts#L172
Error: Failed to fetch Confluence accessible resources: 401 - {"code":401,"message":"Unauthorized"} ❯ lib/atlassian/discovery.ts:172:34 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 401, statusText: 'Unauthorized' }
lib/atlassian/assistant.test.ts > Atlassian Assistant resource selection > uses token-authorized jira discovery without sending credentials to the selected domain: apps/sim/lib/atlassian/discovery.ts#L172
Error: Failed to fetch Jira accessible resources: 401 - {"code":401,"message":"Unauthorized"} ❯ lib/atlassian/discovery.ts:172:34 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 401, statusText: 'Unauthorized' }
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/v2/knowledge/search/route.provenance.test.ts > Knowledge search provenance through the V2 route and reranker HTTP boundary > redacts current known-secret chunks with enforcement=false: apps/sim/app/api/v2/knowledge/search/route.provenance.test.ts#L275
AssertionError: expected 'unavailable' to be 'applied' // Object.is equality Expected: "applied" Received: "unavailable" ❯ app/api/v2/knowledge/search/route.provenance.test.ts:275:40
app/api/knowledge/search/utils.test.ts > Knowledge Search Utils > generateSearchEmbedding > projects verified provenance only in the model-bound embedding payload: apps/sim/lib/embeddings/client.ts#L610
EmbeddingAPIError: Embedding API failed: 401 ❯ maxRetries lib/embeddings/client.ts:610:25 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 401, isBYOK: false, quotaExhausted: false, retryAfterMs: undefined, headers: { headers: { constructor: 'Function<Map>', get: 'Function<get>', set: 'Function<set>', has: 'Function<has>', delete: 'Function<delete>', clear: 'Function<clear>', entries: 'Function<entries>', forEach: 'Function<forEach>', keys: 'Function<keys>', size: 15, values: 'Function<values>' }, setCookies: [ '__cf_bm=dI0bL8f6mtpZdnivxytlVYYcl6i7x07paEb0gFt8lxA-1789171639.5232625-1.0.1.1-uuDi5rLzEQmwqto4oAu1fuVEV9P2VPUhaXfIyKb.7hKElricHnAMtTN.hlWK2c81exC8WOEejK9zJlH2e.4HDyWhlDcAeN5iNLtULsi2fdPCzHbyHvKqQTr34d9kwiBE; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 12 Sep 2026 00:37:19 GMT', '_cfuvid=NW5v8qNtNaGpYgHNql7SfqIpRDjZpU06nlYx4dsh.2o-1789171639.5232625-1.0.1.1-rrO.lFpVamBJV94gD81uIJkUk1fXco2DbiH3T5lEC0g; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com' ], constructor: 'Function<SecureFetchHeaders>', get: 'Function<get>', getSetCookie: 'Function<getSetCookie>', toRecord: 'Function<toRecord>' } }
app/api/knowledge/search/utils.test.ts > Knowledge Search Utils > generateSearchEmbedding > should include correct request body for OpenAI: apps/sim/lib/embeddings/client.ts#L610
EmbeddingAPIError: Embedding API failed: 401 ❯ maxRetries lib/embeddings/client.ts:610:25 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 401, isBYOK: false, quotaExhausted: false, retryAfterMs: undefined, headers: { headers: { constructor: 'Function<Map>', get: 'Function<get>', set: 'Function<set>', has: 'Function<has>', delete: 'Function<delete>', clear: 'Function<clear>', entries: 'Function<entries>', forEach: 'Function<forEach>', keys: 'Function<keys>', size: 15, values: 'Function<values>' }, setCookies: [ '__cf_bm=Aw3ruLUy_N.KI8jrjzHETF8zB5q2RFmzBsSWYQK7Ziw-1789171639.407072-1.0.1.1-czKiwmQDV1sTBbdzXqdDh.8tNQk7XUP0molG4V8pevsIahLlUm4ACOtKmINcRb7R8.cdTnVDLvbMbRYd7pmiGZAyCGbw7KJeXfkaHHD43uZmm7YHpnn8oiwu.PwCRPYq; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 12 Sep 2026 00:37:19 GMT', '_cfuvid=.DjzkQYA4N2REPZuNyd4QRQPN2_TLEhIGlnOJ15C_BY-1789171639.407072-1.0.1.1-ls5wj58HK_V4pzyGa4I3arY4HfBFjBmx.rz5ZGMjStQ; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com' ], constructor: 'Function<SecureFetchHeaders>', get: 'Function<get>', getSetCookie: 'Function<getSetCookie>', toRecord: 'Function<toRecord>' } }
app/api/knowledge/search/utils.test.ts > Knowledge Search Utils > generateSearchEmbedding > should include correct request body for Azure OpenAI: apps/sim/lib/embeddings/client.ts#L610
EmbeddingAPIError: Embedding API failed: 401 ❯ maxRetries lib/embeddings/client.ts:610:25 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 401, isBYOK: false, quotaExhausted: false, retryAfterMs: undefined, headers: { headers: { constructor: 'Function<Map>', get: 'Function<get>', set: 'Function<set>', has: 'Function<has>', delete: 'Function<delete>', clear: 'Function<clear>', entries: 'Function<entries>', forEach: 'Function<forEach>', keys: 'Function<keys>', size: 5, values: 'Function<values>' }, setCookies: [], constructor: 'Function<SecureFetchHeaders>', get: 'Function<get>', getSetCookie: 'Function<getSetCookie>', toRecord: 'Function<toRecord>' } }
app/api/knowledge/search/utils.test.ts > Knowledge Search Utils > generateSearchEmbedding > should use custom model name when provided in Azure config: apps/sim/lib/embeddings/client.ts#L610
EmbeddingAPIError: Embedding API failed: 401 ❯ maxRetries lib/embeddings/client.ts:610:25 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 401, isBYOK: false, quotaExhausted: false, retryAfterMs: undefined, headers: { headers: { constructor: 'Function<Map>', get: 'Function<get>', set: 'Function<set>', has: 'Function<has>', delete: 'Function<delete>', clear: 'Function<clear>', entries: 'Function<entries>', forEach: 'Function<forEach>', keys: 'Function<keys>', size: 5, values: 'Function<values>' }, setCookies: [], constructor: 'Function<SecureFetchHeaders>', get: 'Function<get>', getSetCookie: 'Function<getSetCookie>', toRecord: 'Function<toRecord>' } }
app/api/knowledge/search/utils.test.ts > Knowledge Search Utils > generateSearchEmbedding > falls back to OpenAI when AZURE_OPENAI_API_VERSION is not set: apps/sim/lib/embeddings/client.ts#L610
EmbeddingAPIError: Embedding API failed: 401 ❯ maxRetries lib/embeddings/client.ts:610:25 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 401, isBYOK: false, quotaExhausted: false, retryAfterMs: undefined, headers: { headers: { constructor: 'Function<Map>', get: 'Function<get>', set: 'Function<set>', has: 'Function<has>', delete: 'Function<delete>', clear: 'Function<clear>', entries: 'Function<entries>', forEach: 'Function<forEach>', keys: 'Function<keys>', size: 15, values: 'Function<values>' }, setCookies: [ '__cf_bm=n2B37nyHGZVlAglwlSMBWbTWLPtGh6IswhfD0CBkssY-1789171637.5424466-1.0.1.1-3jjzC1CHvB68TfAXJ3Nmj_agxaCt20ULVK6N_P0yv0GwitvxL9ooecFOlhQRt1p_7eVK_emUdaXeJEq36ndl34Vw7z50McQ8F2ZAC0JFgMgvfIU0iNmWgtM5C2kefEYd; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 12 Sep 2026 00:37:17 GMT', '_cfuvid=wBXTU1e6mLECH2jTJj8QlSZF_e6RDO_hpst23rtWe90-1789171637.5424466-1.0.1.1-5RlE.Lxmx.S_WHUNXxh1ZXJwv4.ZMQ.phVuUwpfFEqA; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com' ], constructor: 'Function<SecureFetchHeaders>', get: 'Function<get>', getSetCookie: 'Function<getSetCookie>', toRecord: 'Function<toRecord>' } }
app/api/knowledge/search/utils.test.ts > Knowledge Search Utils > generateSearchEmbedding > should fallback to OpenAI when no KB Azure config provided: apps/sim/lib/embeddings/client.ts#L610
EmbeddingAPIError: Embedding API failed: 401 ❯ maxRetries lib/embeddings/client.ts:610:25 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 401, isBYOK: false, quotaExhausted: false, retryAfterMs: undefined, headers: { headers: { constructor: 'Function<Map>', get: 'Function<get>', set: 'Function<set>', has: 'Function<has>', delete: 'Function<delete>', clear: 'Function<clear>', entries: 'Function<entries>', forEach: 'Function<forEach>', keys: 'Function<keys>', size: 15, values: 'Function<values>' }, setCookies: [ '__cf_bm=Ru6dss91z48fEBguBtaaoDaY9bo.SNmxnTJvrjnSc0E-1789171637.4669702-1.0.1.1-0.0pK_MDtc4kQBeP8M1q.QIDf.w6IrCKrbR0BGYC9_QgiXaXNiOc71yFESYhYGz2XRAQ7eSLgF7ByWVfZ3a_lYOfV7phqSeb95dt1.ehcHSdQMzWm.vIhW_KMwfU6YTa; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 12 Sep 2026 00:37:17 GMT', '_cfuvid=.hcoya6kIbBbQNiBn0MznBwj6mTjULNfvBuw_Eb4qpA-1789171637.4669702-1.0.1.1-Zl_mzrlM1.1JyTJmybbPqRaRwxGtNwdfXmXYnHmHcYg; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com' ], constructor: 'Function<SecureFetchHeaders>', get: 'Function<get>', getSetCookie: 'Function<getSetCookie>', toRecord: 'Function<toRecord>' } }
app/api/knowledge/search/utils.test.ts > Knowledge Search Utils > generateSearchEmbedding > should use Azure OpenAI when KB-specific config is provided: apps/sim/lib/embeddings/client.ts#L610
EmbeddingAPIError: Embedding API failed: 401 ❯ maxRetries lib/embeddings/client.ts:610:25 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { status: 401, isBYOK: false, quotaExhausted: false, retryAfterMs: undefined, headers: { headers: { constructor: 'Function<Map>', get: 'Function<get>', set: 'Function<set>', has: 'Function<has>', delete: 'Function<delete>', clear: 'Function<clear>', entries: 'Function<entries>', forEach: 'Function<forEach>', keys: 'Function<keys>', size: 5, values: 'Function<values>' }, setCookies: [], constructor: 'Function<SecureFetchHeaders>', get: 'Function<get>', getSetCookie: 'Function<getSetCookie>', toRecord: 'Function<toRecord>' } }
lib/core/network/environment-proxy.server.test.ts > operator environment proxies > preserves proxy routing and TLS verification under the actual Bun runtime: apps/sim/lib/core/network/environment-proxy.server.test.ts#L335
Error: Test timed out in 10000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ lib/core/network/environment-proxy.server.test.ts:335:3
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 / Lint and Test
Process completed with exit code 1.
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