Skip to content

fix(core): Align error span status message with core SpanStatusType for langchain/google-genai#19863

Merged
nicohrubec merged 7 commits intodevelopfrom
nh/align-error-span-status
Mar 19, 2026
Merged

fix(core): Align error span status message with core SpanStatusType for langchain/google-genai#19863
nicohrubec merged 7 commits intodevelopfrom
nh/align-error-span-status

Conversation

@nicohrubec
Copy link
Member

@nicohrubec nicohrubec commented Mar 18, 2026

In case of exceptions we should set the span status to a known error value from our core SpanStatusType.

Closes #19862

@github-actions
Copy link
Contributor

github-actions bot commented Mar 18, 2026

Semver Impact of This PR

🟢 Patch (bug fixes)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


New Features ✨

  • (remix) Server Timing Headers Trace Propagation by onurtemizkan in #18653

Bug Fixes 🐛

Deps

  • Bump devalue 5.6.3 to 5.6.4 to fix CVE-2026-30226 by chargome in #19849
  • Bump file-type to 21.3.2 and @nestjs/common to 11.1.17 by chargome in #19847
  • Bump unhead 2.1.4 to 2.1.12 to fix CVE-2026-31860 and CVE-2026-31873 by chargome in #19848
  • Bump flatted 3.3.1 to 3.4.2 to fix CVE-2026-32141 by chargome in #19842
  • Bump tar 7.5.10 to 7.5.11 to fix CVE-2026-31802 by chargome in #19846
  • Bump hono 4.12.5 to 4.12.7 in cloudflare-hono E2E test app by chargome in #19850
  • Bump undici 6.23.0 to 6.24.1 to fix multiple CVEs by chargome in #19841

Other

  • (core) Align error span status message with core SpanStatusType for langchain/google-genai by nicohrubec in #19863
  • (deno) Clear pre-existing OTel global before registering TracerProvider by sergical in #19723
  • (node-core) Recycle propagationContext for each request by Lms24 in #19835

Internal Changes 🔧

  • (deps) Bump next from 16.1.5 to 16.1.7 in /dev-packages/e2e-tests/test-applications/nextjs-16 by dependabot in #19851
  • (nextjs) Skip broken ISR tests by chargome in #19871
  • (react) Add gql tests for react router by chargome in #19844
  • (release) Switch from action-prepare-release to Craft by BYK in #18763

🤖 This preview updates automatically when you update the PR.

@github-actions
Copy link
Contributor

github-actions bot commented Mar 18, 2026

size-limit report 📦

⚠️ Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

Path Size % Change Change
@sentry/browser 25.64 kB - -
@sentry/browser - with treeshaking flags 24.14 kB - -
@sentry/browser (incl. Tracing) 42.62 kB - -
@sentry/browser (incl. Tracing, Profiling) 47.28 kB - -
@sentry/browser (incl. Tracing, Replay) 81.42 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 71 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 86.12 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 98.37 kB - -
@sentry/browser (incl. Feedback) 42.45 kB - -
@sentry/browser (incl. sendFeedback) 30.31 kB - -
@sentry/browser (incl. FeedbackAsync) 35.36 kB - -
@sentry/browser (incl. Metrics) 26.92 kB - -
@sentry/browser (incl. Logs) 27.07 kB - -
@sentry/browser (incl. Metrics & Logs) 27.74 kB - -
@sentry/react 27.39 kB - -
@sentry/react (incl. Tracing) 44.95 kB - -
@sentry/vue 30.08 kB - -
@sentry/vue (incl. Tracing) 44.48 kB - -
@sentry/svelte 25.66 kB - -
CDN Bundle 28.28 kB - -
CDN Bundle (incl. Tracing) 43.51 kB - -
CDN Bundle (incl. Logs, Metrics) 29.14 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 44.36 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 68.21 kB - -
CDN Bundle (incl. Tracing, Replay) 80.33 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 81.23 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 85.87 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 86.77 kB - -
CDN Bundle - uncompressed 82.62 kB - -
CDN Bundle (incl. Tracing) - uncompressed 128.56 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 85.49 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 131.43 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 209.12 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 245.41 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 248.26 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 258.32 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 261.17 kB - -
@sentry/nextjs (client) 47.37 kB - -
@sentry/sveltekit (client) 43.07 kB - -
@sentry/node-core 56.38 kB +0.06% +31 B 🔺
@sentry/node 173.31 kB +0.09% +152 B 🔺
@sentry/node - without tracing 96.37 kB +0.03% +28 B 🔺
@sentry/aws-serverless 113.37 kB +0.03% +30 B 🔺

View base workflow run

@github-actions
Copy link
Contributor

github-actions bot commented Mar 18, 2026

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.
⚠️ Warning: Base artifact is not the latest one, because the latest workflow run is not done yet. This may lead to incorrect results. Try to re-run all tests to get up to date results.

Scenario Requests/s % of Baseline Prev. Requests/s Change %
GET Baseline 8,958 - 8,908 +1%
GET With Sentry 1,709 19% 1,713 -0%
GET With Sentry (error only) 6,044 67% 6,093 -1%
POST Baseline 1,170 - 1,190 -2%
POST With Sentry 572 49% 591 -3%
POST With Sentry (error only) 1,026 88% 1,044 -2%
MYSQL Baseline 3,313 - 3,176 +4%
MYSQL With Sentry 492 15% 488 +1%
MYSQL With Sentry (error only) 2,684 81% 2,617 +3%

View base workflow run

@nicohrubec nicohrubec marked this pull request as ready for review March 18, 2026 15:54
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

}

const ANTHROPIC_ERROR_TYPE_TO_SPAN_STATUS: Record<string, string> = {
invalid_request_error: 'invalid_argument',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not invalid_request?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that doesn't exist in SpanStatusType

Copy link
Member

@Lms24 Lms24 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aligning the status here to our span status values sounds like a good call! I had some typing suggestions and I agree with bugbot that a unit test or two would be good :)

Side-note: Long term, the new span protocol will only accept ok and error as span status. So we can merge this for today's transactions but we might be able to get rid of this code entirely at a later point.

});
}

const ANTHROPIC_ERROR_TYPE_TO_SPAN_STATUS: Record<string, string> = {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

l: Can we type this as Record<string, SpanStatus>? (actual questions, I don't know the full type by heart. No strong feelings though, I was just thinking of some additional type safety)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right string is a bit generic, we can type it as SpanStatusType

* Map an Anthropic API error type to a SpanStatusType value.
* @see https://docs.anthropic.com/en/api/errors#error-shapes
*/
export function mapAnthropicErrorToStatusMessage(errorType: string | undefined): string {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

l: same question here, can we return a SpanStatus instead of a string?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here I'll type it as SpanStatusType

@nicohrubec nicohrubec merged commit 3bb4325 into develop Mar 19, 2026
236 checks passed
@nicohrubec nicohrubec deleted the nh/align-error-span-status branch March 19, 2026 10:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Align error span status with core SpanStatusType

4 participants