Skip to content

fix(v10/core): Use trace_metric data category for metrics rate limits and client reports #62907

fix(v10/core): Use trace_metric data category for metrics rate limits and client reports

fix(v10/core): Use trace_metric data category for metrics rate limits and client reports #62907

Re-run triggered October 21, 2026 16:49
Status Failure
Total duration 14m 1s
Artifacts 4

build.yml

on: pull_request
Get CI Metadata  /  Get Metadata
8s
Get CI Metadata / Get Metadata
Check lockfile
Check lockfile
Check file formatting
45s
Check file formatting
Check PR branches
4s
Check PR branches
Build Lambda layer
2m 2s
Build Lambda layer
Matrix: job_bundler_plugin_integration_tests
Matrix: job_node_core_integration_tests
Matrix: job_node_integration_tests
Matrix: job_node_unit_tests
Lint
1m 24s
Lint
Circular Dependency Check
1m 48s
Circular Dependency Check
Browser Unit Tests
4m 0s
Browser Unit Tests
Bun Unit Tests
45s
Bun Unit Tests
Deno Unit Tests
1m 15s
Deno Unit Tests
Node v18.0.0 Compatibility Check
37s
Node v18.0.0 Compatibility Check
Cloudflare Integration Tests
7m 9s
Cloudflare Integration Tests
Bun Integration Tests
44s
Bun Integration Tests
Deno Integration Tests
48s
Deno Integration Tests
Check for faulty .d.ts files
39s
Check for faulty .d.ts files
Matrix: job_browser_loader_tests
Matrix: job_browser_playwright_tests
Matrix: job_optional_e2e_tests
Upload Artifacts
Upload Artifacts
Matrix: job_e2e_tests
All required jobs passed or were skipped
4s
All required jobs passed or were skipped
Fit to window
Zoom out
Zoom in

Annotations

73 errors, 3 warnings, and 5 notices
E2E node-core-express-otel-v1-custom-sampler Test
Process completed with exit code 2.
E2E node-core-express-otel-v1-custom-sampler Test
Type 'Attributes' is not assignable to type 'SpanAttributes'.
E2E node-core-express-otel-v2-custom-sampler Test
Process completed with exit code 2.
E2E node-core-express-otel-v2-custom-sampler Test
Type 'Attributes' is not assignable to type 'SpanAttributes'.
E2E node-otel-custom-sampler Test
Process completed with exit code 2.
E2E node-otel-custom-sampler Test
Type 'Attributes' is not assignable to type 'SpanAttributes'.
E2E node-otel-without-tracing Test
Process completed with exit code 1.
[chromium] › tests/transactions.test.ts:4:5 › Sends an API route transaction to OTLP: ../../_temp/test-application/tests/transactions.test.ts#L57
3) [chromium] › tests/transactions.test.ts:4:5 › Sends an API route transaction to OTLP ────────── Error: expect(received).toEqual(expected) // deep equality - Expected - 0 + Received + 1 @@ -93,10 +93,11 @@ "events": Array [], "flags": Any<Number>, "kind": 3, "links": Array [], "name": "GET", + "parentSpanId": "12b32b409720adbb", "spanId": Any<String>, "startTimeUnixNano": Any<String>, "status": Object { "code": 0, }, 55 | expect(undiciScopes[0].spans.length).toBe(1); 56 | > 57 | expect(undiciScopes[0].spans).toEqual([ | ^ 58 | { 59 | traceId: expect.any(String), 60 | spanId: expect.any(String), at /home/runner/work/_temp/test-application/tests/transactions.test.ts:57:33
[chromium] › tests/errors.test.ts:32:5 › Isolates requests correctly: ../../_temp/test-application/tests/errors.test.ts#L46
2) [chromium] › tests/errors.test.ts:32:5 › Isolates requests correctly ────────────────────────── Error: expect(received).toEqual(expected) // deep equality Expected: "GET /test-exception/555-a" Received: undefined 44 | const errorEvent2 = await errorEventPromise2; 45 | > 46 | expect(errorEvent1.transaction).toEqual('GET /test-exception/555-a'); | ^ 47 | expect(errorEvent1.tags).toEqual({ 'root-level-tag': 'yes', 'param-555-a': '555-a' }); 48 | 49 | expect(errorEvent2.transaction).toEqual('GET /test-exception/555-b'); at /home/runner/work/_temp/test-application/tests/errors.test.ts:46:35
[chromium] › tests/errors.test.ts:4:5 › Sends correct error event: ../../_temp/test-application/tests/errors.test.ts#L24
1) [chromium] › tests/errors.test.ts:4:5 › Sends correct error event ───────────────────────────── Error: expect(received).toEqual(expected) // deep equality Expected: "GET /test-exception/123" Received: undefined 22 | 23 | // This is unparameterized here because we do not have the express instrumentation > 24 | expect(errorEvent.transaction).toEqual('GET /test-exception/123'); | ^ 25 | 26 | expect(errorEvent.contexts?.trace).toEqual({ 27 | trace_id: expect.stringMatching(/[a-f0-9]{32}/), at /home/runner/work/_temp/test-application/tests/errors.test.ts:24:34
E2E nextjs-16-tunnel (handler, webpack, edge) Test
Process completed with exit code 1.
[chromium] › tests/tunnel-route.test.ts:6:5 › Tunnel route should proxy pageload transaction to Sentry: ../../_temp/test-application/tests/tunnel-route.test.ts#L0
1) [chromium] › tests/tunnel-route.test.ts:6:5 › Tunnel route should proxy pageload transaction to Sentry Test timeout of 30000ms exceeded.
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > captures error in tool: dev-packages/node-integration-tests/utils/runner/createRunner.ts#L373
Error: Expected envelope item type 'span' but got 'event'. Item: [{"type":"event"},{"exception":{"values":[{"type":"Error","value":"Error in tool","stacktrace":{"frames":[{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl7je_a0lw6a/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"generateText","lineno":4642,"colno":12,"in_app":false,"pre_context":[" callbacks: ["," onStart,"," globalTelemetry.onStart"," ]"," });"," const tracer = getTracer(telemetry);"," try {"],"context_line":" return await recordSpan({","post_context":[" name: \"ai.generateText\","," attributes: selectTelemetryAttributes({"," telemetry,"," attributes: {"," ...assembleOperationName({"," operationId: \"ai.generateText\","," telemetry"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl7je_a0lw6a/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"?","lineno":2458,"colno":24,"in_app":false,"pre_context":["}) {"," return tracer.startActiveSpan("," name23,"," { attributes: await attributes },"," async (span) => {"," const ctx = context.active();"," try {"],"context_line":" const result = await context.with(ctx, () => fn(span));","post_context":[" if (endWhenDone) {"," span.end();"," }"," return result;"," } catch (error) {"," try {"," recordErrorOnSpan(span, error);"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl7je_a0lw6a/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"fn","lineno":5050,"colno":20,"in_app":false,"pre_context":[" clientToolCalls = stepToolCalls.filter("," (toolCall) => !toolCall.providerExecuted"," );"," if (stepToolSet != null && isToolExecutionAllowedFinishReason("," currentModelResponse.finishReason.unified"," )) {"," clientToolOutputs.push("],"context_line":" ...await executeTools({","post_context":[" toolCalls: clientToolCalls.filter("," (toolCall) => !toolCall.invalid && toolApprovalRequests[toolCall.toolCallId] == null"," ),"," tools: stepToolSet,"," tracer,"," telemetry,"," messages: stepInputMessages,"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl7je_a0lw6a/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"executeTools","lineno":5275,"colno":23,"in_app":false,"pre_context":[" abortSignal,"," experimental_context,"," stepNumber,"," model,"," onToolCallStart,"," onToolCallFinish","}) {"],"context_line":" const toolOutputs = await Promise.all(","post_context":[" toolCalls.map("," async (toolCall) => executeToolCall({"," toolCall,"," tools,"," tracer,"," telemetry,"," messages,"]},{"filename":"index 0","module":"index 0","function":"Promise.all","in_app":false},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl7je_a0lw6a/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"?","lineno":2458,"colno":24,"in_app":false,"pre_context":["}) {"," return tracer.startActiveSpan("," name23,"," { attributes: await attributes },"," async (span) => {"," const ctx = context.active();"," try {"],"context_line":" const result = await context.with(ctx, () => fn(span));","post_context":[" if (endWhenDone) {"," span.end();"," }"," return result;"," } catch (error) {"," try {"," recordErrorOnSpan(span, erro
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans when dataCollection.genAi has inputs and outputs disabled: dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/test.ts#L179
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:179:7 ❯ createEsmTests utils/runner/createEsmAndCjsTests.ts:120:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:174:3
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans for dataCollection defaults [cjs]: dev-packages/node-integration-tests/utils/runner/createEsmAndCjsTests.ts#L427
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ Object.apply utils/runner/createEsmAndCjsTests.ts:427:22 ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:55:7 ❯ createEsmAndCjsTests utils/runner/createEsmAndCjsTests.ts:84:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:50:3
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans for dataCollection defaults [esm]: dev-packages/node-integration-tests/utils/runner/createEsmAndCjsTests.ts#L427
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ Object.apply utils/runner/createEsmAndCjsTests.ts:427:22 ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:55:7 ❯ createEsmAndCjsTests utils/runner/createEsmAndCjsTests.ts:68:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:50:3
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > normalizes error status in streaming mode [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13380161536, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "app.memory": { + "type": "integer", + "value": 126058496, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:16.068Z", }, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "name": "invoke_agent", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:48:59.974Z", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.cpu_description": { + "type": "string", + "value": "AMD EPYC 9V45 96-Core Processor", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.free_memory": { + "type": "integer", + "value": 13380161536, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 40, + "device.memory_size": { + "type": "integer", + "value": 16766414848, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "device.processor_count": { + "type": "integer", + "value": 4, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.processor_frequency": { + "type": "integer", + "value": 0, }, + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, - "name": "generate_content mock-model-id", - "status": "ok", + "process.runtime.engine.version": { + "type": "string", + "value": "13.6.233.17-node.53", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "execute_tool", + "sentry.environment": { + "type": "string", + "value": "production", }, - "gen_ai.tool.call.id": ObjectContaining { - "value": "call-1", + "sentry.op": { + "type": "string", + "value": "function", }, - "gen_ai.tool.name": ObjectContaining { - "value": "getWeather", + "sentry.origin": { + "type": "string", + "value": "manual", }, - "gen_ai.tool.type": ObjectContaining { - "value": "function", + "sentry.release": { + "type": "string", + "value": "1.0", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.execute_tool", + "sentry.sample_rate": { + "type": "integer", + "value": 1, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > normalizes error status in streaming mode [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13384298496, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "app.memory": { + "type": "integer", + "value": 172335104, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:15.439Z", }, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "name": "invoke_agent", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:48:59.976Z", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.cpu_description": { + "type": "string", + "value": "AMD EPYC 9V45 96-Core Processor", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.free_memory": { + "type": "integer", + "value": 13384298496, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 40, + "device.memory_size": { + "type": "integer", + "value": 16766414848, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "device.processor_count": { + "type": "integer", + "value": 4, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.processor_frequency": { + "type": "integer", + "value": 0, }, + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, - "name": "generate_content mock-model-id", - "status": "ok", + "process.runtime.engine.version": { + "type": "string", + "value": "13.6.233.17-node.53", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "execute_tool", + "sentry.environment": { + "type": "string", + "value": "production", }, - "gen_ai.tool.call.id": ObjectContaining { - "value": "call-1", + "sentry.op": { + "type": "string", + "value": "function", }, - "gen_ai.tool.name": ObjectContaining { - "value": "getWeather", + "sentry.origin": { + "type": "string", + "value": "manual", }, - "gen_ai.tool.type": ObjectContaining { - "value": "function", + "sentry.release": { + "type": "string", + "value": "1.0", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.execute_tool", + "sentry.sample_rate": { + "type": "integer", + "value": 1, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording enabled [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the first span?\"}]", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13411872768, }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "app.memory": { + "type": "integer", + "value": 124588032, }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:15.044Z", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - "sentry.sdk_meta.gen_ai.input.messages.original_length": ObjectContaining { - "value": 1, - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": Any<String>, - }, - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the second span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"Second span here!\"}],\"finish_reason\":\"stop\"}]", -
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording enabled [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the first span?\"}]", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13376716800, }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "app.memory": { + "type": "integer", + "value": 174428160, }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:14.370Z", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - "sentry.sdk_meta.gen_ai.input.messages.original_length": ObjectContaining { - "value": 1, - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": Any<String>, - }, - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the second span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"Second span here!\"}],\"finish_reason\":\"stop\"}]", -
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording disabled [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13417254912, }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "app.memory": { + "type": "integer", + "value": 128745472, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:13.907Z", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.boot_time": { +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording disabled [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13385719808, }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "app.memory": { + "type": "integer", + "value": 172998656, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:13.122Z", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.boot_time": { +
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > captures error in tool: dev-packages/node-integration-tests/utils/runner/createRunner.ts#L373
Error: Expected envelope item type 'span' but got 'event'. Item: [{"type":"event"},{"exception":{"values":[{"type":"Error","value":"Error in tool","stacktrace":{"frames":[{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicla5u_46nadd/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"generateText","lineno":4642,"colno":12,"in_app":false,"pre_context":[" callbacks: ["," onStart,"," globalTelemetry.onStart"," ]"," });"," const tracer = getTracer(telemetry);"," try {"],"context_line":" return await recordSpan({","post_context":[" name: \"ai.generateText\","," attributes: selectTelemetryAttributes({"," telemetry,"," attributes: {"," ...assembleOperationName({"," operationId: \"ai.generateText\","," telemetry"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicla5u_46nadd/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"?","lineno":2458,"colno":24,"in_app":false,"pre_context":["}) {"," return tracer.startActiveSpan("," name23,"," { attributes: await attributes },"," async (span) => {"," const ctx = context.active();"," try {"],"context_line":" const result = await context.with(ctx, () => fn(span));","post_context":[" if (endWhenDone) {"," span.end();"," }"," return result;"," } catch (error) {"," try {"," recordErrorOnSpan(span, error);"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicla5u_46nadd/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"fn","lineno":5050,"colno":20,"in_app":false,"pre_context":[" clientToolCalls = stepToolCalls.filter("," (toolCall) => !toolCall.providerExecuted"," );"," if (stepToolSet != null && isToolExecutionAllowedFinishReason("," currentModelResponse.finishReason.unified"," )) {"," clientToolOutputs.push("],"context_line":" ...await executeTools({","post_context":[" toolCalls: clientToolCalls.filter("," (toolCall) => !toolCall.invalid && toolApprovalRequests[toolCall.toolCallId] == null"," ),"," tools: stepToolSet,"," tracer,"," telemetry,"," messages: stepInputMessages,"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicla5u_46nadd/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"executeTools","lineno":5275,"colno":23,"in_app":false,"pre_context":[" abortSignal,"," experimental_context,"," stepNumber,"," model,"," onToolCallStart,"," onToolCallFinish","}) {"],"context_line":" const toolOutputs = await Promise.all(","post_context":[" toolCalls.map("," async (toolCall) => executeToolCall({"," toolCall,"," tools,"," tracer,"," telemetry,"," messages,"]},{"filename":"index 0","module":"index 0","function":"Promise.all","in_app":false},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicla5u_46nadd/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"?","lineno":2458,"colno":24,"in_app":false,"pre_context":["}) {"," return tracer.startActiveSpan("," name23,"," { attributes: await attributes },"," async (span) => {"," const ctx = context.active();"," try {"],"context_line":" const result = await context.with(ctx, () => fn(span));","post_context":[" if (endWhenDone) {"," span.end();"," }"," return result;"," } catch (error) {"," try {"," recordErrorOnSpan(span, erro
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans when dataCollection.genAi has inputs and outputs disabled: dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/test.ts#L179
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:179:7 ❯ createEsmTests utils/runner/createEsmAndCjsTests.ts:120:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:174:3
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans for dataCollection defaults [cjs]: dev-packages/node-integration-tests/utils/runner/createEsmAndCjsTests.ts#L427
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ Object.apply utils/runner/createEsmAndCjsTests.ts:427:22 ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:55:7 ❯ createEsmAndCjsTests utils/runner/createEsmAndCjsTests.ts:84:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:50:3
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans for dataCollection defaults [esm]: dev-packages/node-integration-tests/utils/runner/createEsmAndCjsTests.ts#L427
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ Object.apply utils/runner/createEsmAndCjsTests.ts:427:22 ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:55:7 ❯ createEsmAndCjsTests utils/runner/createEsmAndCjsTests.ts:68:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:50:3
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > normalizes error status in streaming mode [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.memory": { + "type": "integer", + "value": 102985728, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:26.673Z", }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "culture.locale": { + "type": "string", + "value": "en-US", }, + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "name": "invoke_agent", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:46:51.099Z", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.cpu_description": { + "type": "string", + "value": "Intel(R) Xeon(R) 6973P-C", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.free_memory": { + "type": "integer", + "value": 14264807424, }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.memory_size": { + "type": "integer", + "value": 16759308288, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 40, + "device.processor_count": { + "type": "integer", + "value": 4, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "device.processor_frequency": { + "type": "integer", + "value": 3598, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, + "process.runtime.engine.version": { + "type": "string", + "value": "10.2.154.26-node.39", }, - "name": "generate_content mock-model-id", - "status": "ok", + "sentry.environment": { + "type": "string", + "value": "production", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "execute_tool", + "sentry.op": { + "type": "string", + "value": "function", }, - "gen_ai.tool.call.id": ObjectContaining { - "value": "call-1", + "sentry.origin": { + "type": "string", + "value": "manual", }, - "gen_ai.tool.name": ObjectContaining { - "value": "getWeather", + "sentry.release": { + "type": "string", + "value": "1.0", }, - "gen_ai.tool.type": ObjectContaining { - "value": "function", + "sentry.sample_rate": { + "type": "integer", + "value": 1, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.execute_tool", + "sentry.sdk.integrations": { + "type": "array", + "value": [ + "InboundFilters", + "FunctionToString", + "LinkedErrors", + "Req
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > normalizes error status in streaming mode [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.memory": { + "type": "integer", + "value": 142270464, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:25.858Z", }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "culture.locale": { + "type": "string", + "value": "en-US", }, + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "name": "invoke_agent", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:46:51.092Z", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.cpu_description": { + "type": "string", + "value": "Intel(R) Xeon(R) 6973P-C", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.free_memory": { + "type": "integer", + "value": 14275072000, }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.memory_size": { + "type": "integer", + "value": 16759308288, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 40, + "device.processor_count": { + "type": "integer", + "value": 4, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "device.processor_frequency": { + "type": "integer", + "value": 4101, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "os.kernel_version": { + "type": "string", + "value": "7.0.0-1017-azure", }, + "os.name": { + "type": "string", + "value": "Ubuntu Linux", }, - "name": "generate_content mock-model-id", - "status": "ok", + "os.version": { + "type": "string", + "value": "24.04", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "execute_tool", + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, - "gen_ai.tool.call.id": ObjectContaining { - "value": "call-1", + "process.runtime.engine.version": { + "type": "string", + "value": "10.2.154.26-node.39", }, - "gen_ai.tool.name": ObjectContaining { - "value": "getWeather", + "sentry.environment": { + "type": "string", + "value": "production", }, - "gen_ai.tool.type": ObjectContaining { + "sentry.op": { + "type": "string", "value": "function", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.execute_tool", + "sentry.origin": { + "type": "string", + "value": "manual", + }, + "sentry.release": { + "type": "string", + "value": "1.0", + }, + "sentry.sam
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording enabled [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the first span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - "sentry.sdk_meta.gen_ai.input.messages.original_length": ObjectContaining { - "value": 1, - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": Any<String>, - }, - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the second span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"Second span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_ag
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording enabled [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the first span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - "sentry.sdk_meta.gen_ai.input.messages.original_length": ObjectContaining { - "value": 1, - }, + "items": [ + { + "attributes": { + "app.memory": { + "type": "integer", + "value": 139956224, }, - "name": "invoke_agent", - "status": "ok", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:24.566Z", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": Any<String>, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:46:51.094Z", }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "device.cpu_description": { + "type": "string", + "value": "Intel(R) Xeon(R) 6973P-C", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the second span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording disabled [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.memory": { + "type": "integer", + "value": 103665664, }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:24.067Z", }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:46:51.096Z", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "device.cpu_description": { + "type": "string", + "value": "Intel(R) Xeon(R) 6973P-C", }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.free_memory": { + "type": "integer", + "value": 14362877952, }, + "device.memory_size": { + "type": "integer", + "value": 16759308288, }, - "name": "invoke_agent", - "status": "ok", + "device.processor_count": { + "type": "integer", + "value": 4, }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.processor_frequency": { + "type": "integer", + "value": 4099, }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "process.runtime.engine.version": { + "type": "string", + "value": "10.2.154.26-node.39", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "sentry.environment": { + "type": "string", + "value": "production", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "sentry.op": { + "type": "string", + "value": "function", }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "sentry.origin": { + "type": "string", + "value": "manual", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "sentry.release": { + "type": "string", + "value": "1.0", }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "sentry.sample_rate": { + "type": "integer", + "value": 1, }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { -
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording disabled [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "items": [ + { + "attributes": { + "app.memory": { + "type": "integer", + "value": 140427264, }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:23.260Z", }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:46:51.101Z", }, - "name": "invoke_agent", - "status": "ok", + "device.cpu_description": { + "type": "string", + "value": "Intel(R) Xeon(R) 6973P-C", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "device.free_memory": { + "type": "integer", + "value": 14334193664, }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-mode
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > captures error in tool: dev-packages/node-integration-tests/utils/runner/createRunner.ts#L373
Error: Expected envelope item type 'span' but got 'event'. Item: [{"type":"event"},{"exception":{"values":[{"type":"Error","value":"Error in tool","stacktrace":{"frames":[{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl81c_vnx6k8/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"generateText","lineno":4642,"colno":12,"in_app":false,"pre_context":[" callbacks: ["," onStart,"," globalTelemetry.onStart"," ]"," });"," const tracer = getTracer(telemetry);"," try {"],"context_line":" return await recordSpan({","post_context":[" name: \"ai.generateText\","," attributes: selectTelemetryAttributes({"," telemetry,"," attributes: {"," ...assembleOperationName({"," operationId: \"ai.generateText\","," telemetry"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl81c_vnx6k8/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"?","lineno":2458,"colno":24,"in_app":false,"pre_context":["}) {"," return tracer.startActiveSpan("," name23,"," { attributes: await attributes },"," async (span) => {"," const ctx = context.active();"," try {"],"context_line":" const result = await context.with(ctx, () => fn(span));","post_context":[" if (endWhenDone) {"," span.end();"," }"," return result;"," } catch (error) {"," try {"," recordErrorOnSpan(span, error);"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl81c_vnx6k8/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"fn","lineno":5050,"colno":20,"in_app":false,"pre_context":[" clientToolCalls = stepToolCalls.filter("," (toolCall) => !toolCall.providerExecuted"," );"," if (stepToolSet != null && isToolExecutionAllowedFinishReason("," currentModelResponse.finishReason.unified"," )) {"," clientToolOutputs.push("],"context_line":" ...await executeTools({","post_context":[" toolCalls: clientToolCalls.filter("," (toolCall) => !toolCall.invalid && toolApprovalRequests[toolCall.toolCallId] == null"," ),"," tools: stepToolSet,"," tracer,"," telemetry,"," messages: stepInputMessages,"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl81c_vnx6k8/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"executeTools","lineno":5275,"colno":23,"in_app":false,"pre_context":[" abortSignal,"," experimental_context,"," stepNumber,"," model,"," onToolCallStart,"," onToolCallFinish","}) {"],"context_line":" const toolOutputs = await Promise.all(","post_context":[" toolCalls.map("," async (toolCall) => executeToolCall({"," toolCall,"," tools,"," tracer,"," telemetry,"," messages,"]},{"filename":"index 0","module":"index 0","function":"Promise.all","in_app":false},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl81c_vnx6k8/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"?","lineno":2458,"colno":24,"in_app":false,"pre_context":["}) {"," return tracer.startActiveSpan("," name23,"," { attributes: await attributes },"," async (span) => {"," const ctx = context.active();"," try {"],"context_line":" const result = await context.with(ctx, () => fn(span));","post_context":[" if (endWhenDone) {"," span.end();"," }"," return result;"," } catch (error) {"," try {"," recordErrorOnSpan(span, erro
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans when dataCollection.genAi has inputs and outputs disabled: dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/test.ts#L179
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:179:7 ❯ createEsmTests utils/runner/createEsmAndCjsTests.ts:120:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:174:3
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans for dataCollection defaults [cjs]: dev-packages/node-integration-tests/utils/runner/createEsmAndCjsTests.ts#L427
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ Object.apply utils/runner/createEsmAndCjsTests.ts:427:22 ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:55:7 ❯ createEsmAndCjsTests utils/runner/createEsmAndCjsTests.ts:84:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:50:3
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans for dataCollection defaults [esm]: dev-packages/node-integration-tests/utils/runner/createEsmAndCjsTests.ts#L427
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ Object.apply utils/runner/createEsmAndCjsTests.ts:427:22 ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:55:7 ❯ createEsmAndCjsTests utils/runner/createEsmAndCjsTests.ts:68:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:50:3
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > normalizes error status in streaming mode [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13782286336, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "app.memory": { + "type": "integer", + "value": 125403136, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:53:02.279Z", }, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "name": "invoke_agent", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:48:51.812Z", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.cpu_description": { + "type": "string", + "value": "AMD EPYC 9V74 80-Core Processor", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.free_memory": { + "type": "integer", + "value": 13782286336, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 40, + "device.memory_size": { + "type": "integer", + "value": 16766414848, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "device.processor_count": { + "type": "integer", + "value": 4, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.processor_frequency": { + "type": "integer", + "value": 0, }, + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, - "name": "generate_content mock-model-id", - "status": "ok", + "process.runtime.engine.version": { + "type": "string", + "value": "14.6.202.34-node.40", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "execute_tool", + "sentry.environment": { + "type": "string", + "value": "production", }, - "gen_ai.tool.call.id": ObjectContaining { - "value": "call-1", + "sentry.op": { + "type": "string", + "value": "function", }, - "gen_ai.tool.name": ObjectContaining { - "value": "getWeather", + "sentry.origin": { + "type": "string", + "value": "manual", }, - "gen_ai.tool.type": ObjectContaining { - "value": "function", + "sentry.release": { + "type": "string", + "value": "1.0", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.execute_tool", + "sentry.sample_rate": { + "type": "integer", + "value": 1, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > normalizes error status in streaming mode [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13717598208, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "app.memory": { + "type": "integer", + "value": 169623552, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:53:01.361Z", }, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "name": "invoke_agent", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:48:51.803Z", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.cpu_description": { + "type": "string", + "value": "AMD EPYC 9V74 80-Core Processor", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.free_memory": { + "type": "integer", + "value": 13717598208, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 40, + "device.memory_size": { + "type": "integer", + "value": 16766414848, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "device.processor_count": { + "type": "integer", + "value": 4, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.processor_frequency": { + "type": "integer", + "value": 0, }, + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, - "name": "generate_content mock-model-id", - "status": "ok", + "process.runtime.engine.version": { + "type": "string", + "value": "14.6.202.34-node.40", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "execute_tool", + "sentry.environment": { + "type": "string", + "value": "production", }, - "gen_ai.tool.call.id": ObjectContaining { - "value": "call-1", + "sentry.op": { + "type": "string", + "value": "function", }, - "gen_ai.tool.name": ObjectContaining { - "value": "getWeather", + "sentry.origin": { + "type": "string", + "value": "manual", }, - "gen_ai.tool.type": ObjectContaining { - "value": "function", + "sentry.release": { + "type": "string", + "value": "1.0", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.execute_tool", + "sentry.sample_rate": { + "type": "integer", + "value": 1, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording enabled [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the first span?\"}]", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13778137088, }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "app.memory": { + "type": "integer", + "value": 125779968, }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:53:00.708Z", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - "sentry.sdk_meta.gen_ai.input.messages.original_length": ObjectContaining { - "value": 1, - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": Any<String>, - }, - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the second span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"Second span here!\"}],\"finish_reason\":\"stop\"}]", -
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording enabled [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the first span?\"}]", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13767856128, }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "app.memory": { + "type": "integer", + "value": 173920256, }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:59.783Z", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - "sentry.sdk_meta.gen_ai.input.messages.original_length": ObjectContaining { - "value": 1, - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": Any<String>, - }, - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the second span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"Second span here!\"}],\"finish_reason\":\"stop\"}]", -
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording disabled [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13727117312, }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "app.memory": { + "type": "integer", + "value": 125329408, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:59.188Z", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.boot_time": { +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording disabled [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13652848640, }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "app.memory": { + "type": "integer", + "value": 171724800, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:58.222Z", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.boot_time": { +
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > captures error in tool: dev-packages/node-integration-tests/utils/runner/createRunner.ts#L373
Error: Expected envelope item type 'span' but got 'event'. Item: [{"type":"event"},{"exception":{"values":[{"type":"Error","value":"Error in tool","stacktrace":{"frames":[{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl5xk_01s9c9/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"generateText","lineno":4642,"colno":12,"in_app":false,"pre_context":[" callbacks: ["," onStart,"," globalTelemetry.onStart"," ]"," });"," const tracer = getTracer(telemetry);"," try {"],"context_line":" return await recordSpan({","post_context":[" name: \"ai.generateText\","," attributes: selectTelemetryAttributes({"," telemetry,"," attributes: {"," ...assembleOperationName({"," operationId: \"ai.generateText\","," telemetry"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl5xk_01s9c9/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"?","lineno":2458,"colno":24,"in_app":false,"pre_context":["}) {"," return tracer.startActiveSpan("," name23,"," { attributes: await attributes },"," async (span) => {"," const ctx = context.active();"," try {"],"context_line":" const result = await context.with(ctx, () => fn(span));","post_context":[" if (endWhenDone) {"," span.end();"," }"," return result;"," } catch (error) {"," try {"," recordErrorOnSpan(span, error);"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl5xk_01s9c9/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"fn","lineno":5050,"colno":20,"in_app":false,"pre_context":[" clientToolCalls = stepToolCalls.filter("," (toolCall) => !toolCall.providerExecuted"," );"," if (stepToolSet != null && isToolExecutionAllowedFinishReason("," currentModelResponse.finishReason.unified"," )) {"," clientToolOutputs.push("],"context_line":" ...await executeTools({","post_context":[" toolCalls: clientToolCalls.filter("," (toolCall) => !toolCall.invalid && toolApprovalRequests[toolCall.toolCallId] == null"," ),"," tools: stepToolSet,"," tracer,"," telemetry,"," messages: stepInputMessages,"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl5xk_01s9c9/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"executeTools","lineno":5275,"colno":23,"in_app":false,"pre_context":[" abortSignal,"," experimental_context,"," stepNumber,"," model,"," onToolCallStart,"," onToolCallFinish","}) {"],"context_line":" const toolOutputs = await Promise.all(","post_context":[" toolCalls.map("," async (toolCall) => executeToolCall({"," toolCall,"," tools,"," tracer,"," telemetry,"," messages,"]},{"filename":"index 0","module":"index 0","function":"Promise.all","in_app":false},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl5xk_01s9c9/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"?","lineno":2458,"colno":24,"in_app":false,"pre_context":["}) {"," return tracer.startActiveSpan("," name23,"," { attributes: await attributes },"," async (span) => {"," const ctx = context.active();"," try {"],"context_line":" const result = await context.with(ctx, () => fn(span));","post_context":[" if (endWhenDone) {"," span.end();"," }"," return result;"," } catch (error) {"," try {"," recordErrorOnSpan(span, erro
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans when dataCollection.genAi has inputs and outputs disabled: dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/test.ts#L179
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:179:7 ❯ createEsmTests utils/runner/createEsmAndCjsTests.ts:120:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:174:3
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans for dataCollection defaults [cjs]: dev-packages/node-integration-tests/utils/runner/createEsmAndCjsTests.ts#L427
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ Object.apply utils/runner/createEsmAndCjsTests.ts:427:22 ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:55:7 ❯ createEsmAndCjsTests utils/runner/createEsmAndCjsTests.ts:84:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:50:3
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans for dataCollection defaults [esm]: dev-packages/node-integration-tests/utils/runner/createEsmAndCjsTests.ts#L427
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ Object.apply utils/runner/createEsmAndCjsTests.ts:427:22 ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:55:7 ❯ createEsmAndCjsTests utils/runner/createEsmAndCjsTests.ts:68:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:50:3
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > normalizes error status in streaming mode [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13986775040, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "app.memory": { + "type": "integer", + "value": 117137408, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:53:03.318Z", }, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "name": "invoke_agent", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:47:45.490Z", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.cpu_description": { + "type": "string", + "value": "Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.free_memory": { + "type": "integer", + "value": 13986775040, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 40, + "device.memory_size": { + "type": "integer", + "value": 16765374464, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "device.processor_count": { + "type": "integer", + "value": 4, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.processor_frequency": { + "type": "integer", + "value": 3465, }, + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, - "name": "generate_content mock-model-id", - "status": "ok", + "process.runtime.engine.version": { + "type": "string", + "value": "12.4.254.21-node.57", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "execute_tool", + "sentry.environment": { + "type": "string", + "value": "production", }, - "gen_ai.tool.call.id": ObjectContaining { - "value": "call-1", + "sentry.op": { + "type": "string", + "value": "function", }, - "gen_ai.tool.name": ObjectContaining { - "value": "getWeather", + "sentry.origin": { + "type": "string", + "value": "manual", }, - "gen_ai.tool.type": ObjectContaining { - "value": "function", + "sentry.release": { + "type": "string", + "value": "1.0", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.execute_tool", + "sentry.sample_rate": { + "type": "integer", + "value": 1, }, - "sentry.origin": ObjectContaining { - "value": "auto.ve
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > normalizes error status in streaming mode [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13977473024, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "app.memory": { + "type": "integer", + "value": 156839936, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:53:02.450Z", }, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "name": "invoke_agent", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:47:45.491Z", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.cpu_description": { + "type": "string", + "value": "Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.free_memory": { + "type": "integer", + "value": 13977473024, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 40, + "device.memory_size": { + "type": "integer", + "value": 16765374464, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "device.processor_count": { + "type": "integer", + "value": 4, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.processor_frequency": { + "type": "integer", + "value": 3491, + }, + "os.kernel_version": { + "type": "string", + "value": "6.17.0-1022-azure", }, + "os.name": { + "type": "string", + "value": "Ubuntu Linux", }, - "name": "generate_content mock-model-id", - "status": "ok", + "os.version": { + "type": "string", + "value": "24.04", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "execute_tool", + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, - "gen_ai.tool.call.id": ObjectContaining { - "value": "call-1", + "process.runtime.engine.version": { + "type": "string", + "value": "12.4.254.21-node.57", }, - "gen_ai.tool.name": ObjectContaining { - "value": "getWeather", + "sentry.environment": { + "type": "string", + "value": "production", }, - "gen_ai.tool.type": ObjectContaining { + "sentry.op": { + "type": "string", "value": "function", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.execute_tool", + "sentry.origin": { + "type": "string", + "value": "manual", +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording enabled [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the first span?\"}]", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 14041141248, }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "app.memory": { + "type": "integer", + "value": 116035584, }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:53:01.845Z", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - "sentry.sdk_meta.gen_ai.input.messages.original_length": ObjectContaining { - "value": 1, - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": Any<String>, - }, - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the second span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"Second span here!\"}],\"finish_reason\":\"stop\"}]", -
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording enabled [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the first span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - "sentry.sdk_meta.gen_ai.input.messages.original_length": ObjectContaining { - "value": 1, - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": Any<String>, - }, - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the second span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"Second span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_ag
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording disabled [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 14019809280, }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "app.memory": { + "type": "integer", + "value": 116490240, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:53:00.247Z", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.boot_time": { +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording disabled [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13904855040, }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "app.memory": { + "type": "integer", + "value": 160702464, }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:52:59.309Z", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:47:45.497Z", }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.cpu_description": { + "type": "string", + "value": "Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz", }, + "device.free_memory": { + "type": "integer", + "value": 13904855040, }, - "name": "invoke_agent", - "status": "ok", + "device.memory_size": { + "type": "integer", + "value": 16765374464, }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.processor_count": { + "type": "integer", + "value": 4, }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.processor_frequency": { + "type": "integer", + "value": 3491, }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origi
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > captures error in tool: dev-packages/node-integration-tests/utils/runner/createRunner.ts#L373
Error: Expected envelope item type 'span' but got 'event'. Item: [{"type":"event"},{"exception":{"values":[{"type":"Error","value":"Error in tool","stacktrace":{"frames":[{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl8ng_gxi7ds/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"generateText","lineno":4642,"colno":12,"in_app":false,"pre_context":[" callbacks: ["," onStart,"," globalTelemetry.onStart"," ]"," });"," const tracer = getTracer(telemetry);"," try {"],"context_line":" return await recordSpan({","post_context":[" name: \"ai.generateText\","," attributes: selectTelemetryAttributes({"," telemetry,"," attributes: {"," ...assembleOperationName({"," operationId: \"ai.generateText\","," telemetry"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl8ng_gxi7ds/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"?","lineno":2458,"colno":24,"in_app":false,"pre_context":["}) {"," return tracer.startActiveSpan("," name23,"," { attributes: await attributes },"," async (span) => {"," const ctx = context.active();"," try {"],"context_line":" const result = await context.with(ctx, () => fn(span));","post_context":[" if (endWhenDone) {"," span.end();"," }"," return result;"," } catch (error) {"," try {"," recordErrorOnSpan(span, error);"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl8ng_gxi7ds/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"fn","lineno":5050,"colno":20,"in_app":false,"pre_context":[" clientToolCalls = stepToolCalls.filter("," (toolCall) => !toolCall.providerExecuted"," );"," if (stepToolSet != null && isToolExecutionAllowedFinishReason("," currentModelResponse.finishReason.unified"," )) {"," clientToolOutputs.push("],"context_line":" ...await executeTools({","post_context":[" toolCalls: clientToolCalls.filter("," (toolCall) => !toolCall.invalid && toolApprovalRequests[toolCall.toolCallId] == null"," ),"," tools: stepToolSet,"," tracer,"," telemetry,"," messages: stepInputMessages,"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl8ng_gxi7ds/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"executeTools","lineno":5275,"colno":23,"in_app":false,"pre_context":[" abortSignal,"," experimental_context,"," stepNumber,"," model,"," onToolCallStart,"," onToolCallFinish","}) {"],"context_line":" const toolOutputs = await Promise.all(","post_context":[" toolCalls.map("," async (toolCall) => executeToolCall({"," toolCall,"," tools,"," tracer,"," telemetry,"," messages,"]},{"filename":"index 0","module":"index 0","function":"Promise.all","in_app":false},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicl8ng_gxi7ds/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"?","lineno":2458,"colno":24,"in_app":false,"pre_context":["}) {"," return tracer.startActiveSpan("," name23,"," { attributes: await attributes },"," async (span) => {"," const ctx = context.active();"," try {"],"context_line":" const result = await context.with(ctx, () => fn(span));","post_context":[" if (endWhenDone) {"," span.end();"," }"," return result;"," } catch (error) {"," try {"," recordErrorOnSpan(span, erro
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans when dataCollection.genAi has inputs and outputs disabled: dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/test.ts#L179
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:179:7 ❯ createEsmTests utils/runner/createEsmAndCjsTests.ts:120:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:174:3
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans for dataCollection defaults [cjs]: dev-packages/node-integration-tests/utils/runner/createEsmAndCjsTests.ts#L427
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ Object.apply utils/runner/createEsmAndCjsTests.ts:427:22 ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:55:7 ❯ createEsmAndCjsTests utils/runner/createEsmAndCjsTests.ts:84:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:50:3
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans for dataCollection defaults [esm]: dev-packages/node-integration-tests/utils/runner/createEsmAndCjsTests.ts#L427
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ Object.apply utils/runner/createEsmAndCjsTests.ts:427:22 ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:55:7 ❯ createEsmAndCjsTests utils/runner/createEsmAndCjsTests.ts:68:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:50:3
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > normalizes error status in streaming mode [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 14032838656, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "app.memory": { + "type": "integer", + "value": 101134336, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:53:28.689Z", }, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "name": "invoke_agent", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:47:44.138Z", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.cpu_description": { + "type": "string", + "value": "AMD EPYC 7763 64-Core Processor", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.free_memory": { + "type": "integer", + "value": 14032838656, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 40, + "device.memory_size": { + "type": "integer", + "value": 16766406656, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "device.processor_count": { + "type": "integer", + "value": 4, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.processor_frequency": { + "type": "integer", + "value": 0, }, + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, - "name": "generate_content mock-model-id", - "status": "ok", + "process.runtime.engine.version": { + "type": "string", + "value": "11.3.244.8-node.38", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "execute_tool", + "sentry.environment": { + "type": "string", + "value": "production", }, - "gen_ai.tool.call.id": ObjectContaining { - "value": "call-1", + "sentry.op": { + "type": "string", + "value": "function", }, - "gen_ai.tool.name": ObjectContaining { - "value": "getWeather", + "sentry.origin": { + "type": "string", + "value": "manual", }, - "gen_ai.tool.type": ObjectContaining { - "value": "function", + "sentry.release": { + "type": "string", + "value": "1.0", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.execute_tool", + "sentry.sample_rate": { + "type": "integer", + "value": 1, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > normalizes error status in streaming mode [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 14022860800, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "app.memory": { + "type": "integer", + "value": 143245312, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:53:27.350Z", }, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "name": "invoke_agent", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:47:44.140Z", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.cpu_description": { + "type": "string", + "value": "AMD EPYC 7763 64-Core Processor", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.free_memory": { + "type": "integer", + "value": 14022860800, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 40, + "device.memory_size": { + "type": "integer", + "value": 16766406656, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "device.processor_count": { + "type": "integer", + "value": 4, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.processor_frequency": { + "type": "integer", + "value": 0, + }, + "os.kernel_version": { + "type": "string", + "value": "6.17.0-1022-azure", }, + "os.name": { + "type": "string", + "value": "Ubuntu Linux", }, - "name": "generate_content mock-model-id", - "status": "ok", + "os.version": { + "type": "string", + "value": "24.04", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "execute_tool", + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, - "gen_ai.tool.call.id": ObjectContaining { - "value": "call-1", + "process.runtime.engine.version": { + "type": "string", + "value": "11.3.244.8-node.38", }, - "gen_ai.tool.name": ObjectContaining { - "value": "getWeather", + "sentry.environment": { + "type": "string", + "value": "production", }, - "gen_ai.tool.type": ObjectContaining { + "sentry.op": { + "type": "string", "value": "function", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.execute_tool", + "sentry.origin": { + "type": "string", + "value": "manual", + }, +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording enabled [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the first span?\"}]", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 14074589184, }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "app.memory": { + "type": "integer", + "value": 99942400, }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:53:26.591Z", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - "sentry.sdk_meta.gen_ai.input.messages.original_length": ObjectContaining { - "value": 1, - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": Any<String>, - }, - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the second span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"Second span here!\"}],\"finish_reason\":\"stop\"}]", -
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording enabled [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the first span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - "sentry.sdk_meta.gen_ai.input.messages.original_length": ObjectContaining { - "value": 1, - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": Any<String>, - }, - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the second span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"Second span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_ag
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording disabled [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 14074257408, }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "app.memory": { + "type": "integer", + "value": 101470208, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:53:24.853Z", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.boot_time": { +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording disabled [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 14097620992, }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "app.memory": { + "type": "integer", + "value": 149647360, }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:53:23.745Z", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:47:44.145Z", }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.cpu_description": { + "type": "string", + "value": "AMD EPYC 7763 64-Core Processor", }, + "device.free_memory": { + "type": "integer", + "value": 14097620992, }, - "name": "invoke_agent", - "status": "ok", + "device.memory_size": { + "type": "integer", + "value": 16766406656, }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.processor_count": { + "type": "integer", + "value": 4, }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.processor_frequency": { + "type": "integer", + "value": 0, }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContain
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > captures error in tool: dev-packages/node-integration-tests/utils/runner/createRunner.ts#L373
Error: Expected envelope item type 'span' but got 'event'. Item: [{"type":"event"},{"exception":{"values":[{"type":"Error","value":"Error in tool","stacktrace":{"frames":[{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicp4zq_stpfd1/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"generateText","lineno":4642,"colno":12,"in_app":false,"pre_context":[" callbacks: ["," onStart,"," globalTelemetry.onStart"," ]"," });"," const tracer = getTracer(telemetry);"," try {"],"context_line":" return await recordSpan({","post_context":[" name: \"ai.generateText\","," attributes: selectTelemetryAttributes({"," telemetry,"," attributes: {"," ...assembleOperationName({"," operationId: \"ai.generateText\","," telemetry"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicp4zq_stpfd1/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"?","lineno":2458,"colno":24,"in_app":false,"pre_context":["}) {"," return tracer.startActiveSpan("," name23,"," { attributes: await attributes },"," async (span) => {"," const ctx = context.active();"," try {"],"context_line":" const result = await context.with(ctx, () => fn(span));","post_context":[" if (endWhenDone) {"," span.end();"," }"," return result;"," } catch (error) {"," try {"," recordErrorOnSpan(span, error);"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicp4zq_stpfd1/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"fn","lineno":5050,"colno":20,"in_app":false,"pre_context":[" clientToolCalls = stepToolCalls.filter("," (toolCall) => !toolCall.providerExecuted"," );"," if (stepToolSet != null && isToolExecutionAllowedFinishReason("," currentModelResponse.finishReason.unified"," )) {"," clientToolOutputs.push("],"context_line":" ...await executeTools({","post_context":[" toolCalls: clientToolCalls.filter("," (toolCall) => !toolCall.invalid && toolApprovalRequests[toolCall.toolCallId] == null"," ),"," tools: stepToolSet,"," tracer,"," telemetry,"," messages: stepInputMessages,"]},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicp4zq_stpfd1/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"executeTools","lineno":5275,"colno":23,"in_app":false,"pre_context":[" abortSignal,"," experimental_context,"," stepNumber,"," model,"," onToolCallStart,"," onToolCallFinish","}) {"],"context_line":" const toolOutputs = await Promise.all(","post_context":[" toolCalls.map("," async (toolCall) => executeToolCall({"," toolCall,"," tools,"," tracer,"," telemetry,"," messages,"]},{"filename":"index 0","module":"index 0","function":"Promise.all","in_app":false},{"filename":"/home/runner/work/sentry-javascript/sentry-javascript/dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/tmp_mvicp4zq_stpfd1/node_modules/ai/dist/index.mjs","module":"ai.dist:index","function":"?","lineno":2458,"colno":24,"in_app":false,"pre_context":["}) {"," return tracer.startActiveSpan("," name23,"," { attributes: await attributes },"," async (span) => {"," const ctx = context.active();"," try {"],"context_line":" const result = await context.with(ctx, () => fn(span));","post_context":[" if (endWhenDone) {"," span.end();"," }"," return result;"," } catch (error) {"," try {"," recordErrorOnSpan(span, erro
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans when dataCollection.genAi has inputs and outputs disabled: dev-packages/node-integration-tests/suites/tracing/vercelai/v6_v7/test.ts#L179
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:179:7 ❯ createEsmTests utils/runner/createEsmAndCjsTests.ts:120:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:174:3
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans for dataCollection defaults [cjs]: dev-packages/node-integration-tests/utils/runner/createEsmAndCjsTests.ts#L427
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ Object.apply utils/runner/createEsmAndCjsTests.ts:427:22 ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:55:7 ❯ createEsmAndCjsTests utils/runner/createEsmAndCjsTests.ts:84:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:50:3
suites/tracing/vercelai/v6_v7/test.ts > Vercel AI integration (version 6) > creates ai spans for dataCollection defaults [esm]: dev-packages/node-integration-tests/utils/runner/createEsmAndCjsTests.ts#L427
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ Object.apply utils/runner/createEsmAndCjsTests.ts:427:22 ❯ additionalDependencies.ai suites/tracing/vercelai/v6_v7/test.ts:55:7 ❯ createEsmAndCjsTests utils/runner/createEsmAndCjsTests.ts:68:3 ❯ suites/tracing/vercelai/v6_v7/test.ts:50:3
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > normalizes error status in streaming mode [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13538512896, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "app.memory": { + "type": "integer", + "value": 123695104, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:56:34.883Z", }, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "name": "invoke_agent", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:47:34.802Z", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.cpu_description": { + "type": "string", + "value": "AMD EPYC 7763 64-Core Processor", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.free_memory": { + "type": "integer", + "value": 13538512896, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 40, + "device.memory_size": { + "type": "integer", + "value": 16766414848, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "device.processor_count": { + "type": "integer", + "value": 4, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.processor_frequency": { + "type": "integer", + "value": 0, }, + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, - "name": "generate_content mock-model-id", - "status": "ok", + "process.runtime.engine.version": { + "type": "string", + "value": "13.6.233.17-node.53", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "execute_tool", + "sentry.environment": { + "type": "string", + "value": "production", }, - "gen_ai.tool.call.id": ObjectContaining { - "value": "call-1", + "sentry.op": { + "type": "string", + "value": "function", }, - "gen_ai.tool.name": ObjectContaining { - "value": "getWeather", + "sentry.origin": { + "type": "string", + "value": "manual", }, - "gen_ai.tool.type": ObjectContaining { - "value": "function", + "sentry.release": { + "type": "string", + "value": "1.0", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.execute_tool", + "sentry.sample_rate": { + "type": "integer", + "value": 1, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > normalizes error status in streaming mode [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13502799872, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", + "app.memory": { + "type": "integer", + "value": 170397696, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:56:33.821Z", }, + "culture.locale": { + "type": "string", + "value": "en-US", }, - "name": "invoke_agent", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "device.boot_time": { + "type": "string", + "value": "2026-10-21T16:47:34.802Z", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.cpu_description": { + "type": "string", + "value": "AMD EPYC 7763 64-Core Processor", }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.free_memory": { + "type": "integer", + "value": 13502799872, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 40, + "device.memory_size": { + "type": "integer", + "value": 16766414848, }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", + "device.processor_count": { + "type": "integer", + "value": 4, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", + "device.processor_frequency": { + "type": "integer", + "value": 0, }, + "process.runtime.engine.name": { + "type": "string", + "value": "v8", }, - "name": "generate_content mock-model-id", - "status": "ok", + "process.runtime.engine.version": { + "type": "string", + "value": "13.6.233.17-node.53", }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "execute_tool", + "sentry.environment": { + "type": "string", + "value": "production", }, - "gen_ai.tool.call.id": ObjectContaining { - "value": "call-1", + "sentry.op": { + "type": "string", + "value": "function", }, - "gen_ai.tool.name": ObjectContaining { - "value": "getWeather", + "sentry.origin": { + "type": "string", + "value": "manual", }, - "gen_ai.tool.type": ObjectContaining { - "value": "function", + "sentry.release": { + "type": "string", + "value": "1.0", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.execute_tool", + "sentry.sample_rate": { + "type": "integer", + "value": 1, }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording enabled [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the first span?\"}]", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13578121216, }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "app.memory": { + "type": "integer", + "value": 122339328, }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:56:33.161Z", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - "sentry.sdk_meta.gen_ai.input.messages.original_length": ObjectContaining { - "value": 1, - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": Any<String>, - }, - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the second span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"Second span here!\"}],\"finish_reason\":\"stop\"}]", -
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording enabled [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the first span?\"}]", + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13487992832, }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "app.memory": { + "type": "integer", + "value": 171507712, }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:56:32.092Z", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - "sentry.sdk_meta.gen_ai.input.messages.original_length": ObjectContaining { - "value": 1, - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": Any<String>, - }, - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"First span here!\"}],\"finish_reason\":\"stop\"}]", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.input.messages": ObjectContaining { - "value": "[{\"role\":\"user\",\"content\":\"Where is the second span?\"}]", - }, - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.output.messages": ObjectContaining { - "value": "[{\"role\":\"assistant\",\"parts\":[{\"type\":\"text\",\"content\":\"Second span here!\"}],\"finish_reason\":\"stop\"}]", -
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording disabled [cjs]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13600514048, }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "app.memory": { + "type": "integer", + "value": 122499072, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:56:31.317Z", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.boot_time": { +
suites/tracing/vercelai/span-streaming-v6/test.ts > Vercel AI integration (streaming, v6) > creates ai related spans in streaming mode with genAI recording disabled [esm]: dev-packages/node-integration-tests/utils/assertions.ts#L100
AssertionError: expected { version: 2, items: [ { …(8) } ] } to match object { items: ArrayContaining{…} } (1 matching property omitted from actual) - Expected + Received { - "items": ArrayContaining [ - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "generate_content", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.response.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, - }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, - }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, - }, - "sentry.op": ObjectContaining { - "value": "gen_ai.generate_content", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "generate_content mock-model-id", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", - }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", - }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 10, + "items": [ + { + "attributes": { + "app.free_memory": { + "type": "integer", + "value": 13576249344, }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 20, + "app.memory": { + "type": "integer", + "value": 170184704, }, - "gen_ai.usage.total_tokens": ObjectContaining { - "value": 30, + "app.start_time": { + "type": "string", + "value": "2026-10-21T16:56:30.048Z", }, - "sentry.op": ObjectContaining { - "value": "gen_ai.invoke_agent", - }, - "sentry.origin": ObjectContaining { - "value": "auto.vercelai.otel", - }, - }, - "name": "invoke_agent", - "status": "ok", - }, - ObjectContaining { - "attributes": ObjectContaining { - "gen_ai.operation.name": ObjectContaining { - "value": "invoke_agent", + "culture.locale": { + "type": "string", + "value": "en-US", }, - "gen_ai.request.model": ObjectContaining { - "value": "mock-model-id", + "culture.timezone": { + "type": "string", + "value": "UTC", }, - "gen_ai.usage.input_tokens": ObjectContaining { - "value": 15, + "device.archs": { + "type": "array", + "value": [ + "x64", + ], }, - "gen_ai.usage.output_tokens": ObjectContaining { - "value": 25, + "device.boot_time": { +
All required jobs passed or were skipped
Process completed with exit code 1.
E2E node-core-express-otel-v1-custom-sampler Test
No files were found with the provided path: /home/runner/work/_temp/test-application/test-results. No artifacts will be uploaded.
E2E node-core-express-otel-v2-custom-sampler Test
No files were found with the provided path: /home/runner/work/_temp/test-application/test-results. No artifacts will be uploaded.
E2E node-otel-custom-sampler Test
No files were found with the provided path: /home/runner/work/_temp/test-application/test-results. No artifacts will be uploaded.
🎭 Playwright Run Summary
3 failed [chromium] › tests/errors.test.ts:4:5 › Sends correct error event ────────────────────────────── [chromium] › tests/errors.test.ts:32:5 › Isolates requests correctly ─────────────────────────── [chromium] › tests/transactions.test.ts:4:5 › Sends an API route transaction to OTLP ─────────── 2 passed (18.1s)
🎭 Playwright Run Summary
12 passed (20.8s)
🎭 Playwright Run Summary
1 failed [chromium] › tests/tunnel-route.test.ts:6:5 › Tunnel route should proxy pageload transaction to Sentry 1 skipped 4 passed (52.7s)
🎭 Playwright Run Summary
1 skipped 5 passed (11.7s)
🎭 Playwright Run Summary
4 passed (21.5s)

Artifacts

Produced during runtime
Name Size Digest
E2E Test Dump (nextjs-16-tunnel (handler, webpack, edge))
48.9 KB
sha256:710ae79f0c15317f25223bc607514f04a357c11059d3f4274c8888cbc4bde354
playwright-traces-job_e2e_playwright_tests-nextjs-16-tunnel
83.6 KB
sha256:f3f8a13c1fa3d9ddee4ad72103dba457658db6f79fda97a339fb4eab18aa297c
playwright-traces-job_e2e_playwright_tests-node-otel-without-tracing
7.47 KB
sha256:77c9ffa2477ab1c46ab79e963fee575304848037714d765c545fe6c78ce06857