Skip to content

Update java-v9 branch - #20247

Merged
runningcode merged 127 commits into
java-v9from
master
Oct 27, 2026
Merged

runningcode merged 127 commits into
java-v9from
master

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Weekly automated sync of master into java-v9.

Brings in 126 commits from master.

Please merge with a merge commit (not squash) after review.

via automation sched_ad73d0ab6d1d56c93807b4c35dcc4acd · Run ID sched_ad73d0ab6d1d56c93807b4c35dcc4acd:1793089800000.

--

View Junior Session [Sentry]

sentry-api-schema-updater Bot and others added 30 commits October 20, 2026 08:54
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
… various minor improvements (#19797)

Changing some copy, as I hope it will make first timers understand our
release cadence & how often they should upgrade, better.
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
…20109)

<!-- Keep the urgency section so automation can prioritize this PR. You
may delete other sections you don't need. -->

## DESCRIBE YOUR PR

Adds a link to the [Size Analysis status check rules
API](https://docs.sentry.io/api/mobile-builds/retrieve-size-analysis-status-check-rules-for-a-project/)
in the Status Checks section of the Size Analysis overview page, so
readers can find how to read a project's rules programmatically without
digging into the CI integration guide.

## IS YOUR CHANGE URGENT?

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## PRE-MERGE CHECKLIST

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)

<!-- junior-request-attribution:start -->
via **max.topolsky**.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!-- junior-conversation-id:slack%3AC0C688S96UU%3A1792502714.313099 -->

--

[View Junior
Session](https://junior-prod.sentry.dev/conversations/slack%3AC0C688S96UU%3A1792502714.313099)
[[Sentry]](https://sentry.sentry.io/explore/conversations/slack%3AC0C688S96UU%3A1792502714.313099/?project=4510944073809921)

<!-- junior-session-footer:end -->

---------

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: Max Topolsky <max.topolsky@sentry.io>
## DESCRIBE YOUR PR

Removes `next_trace` from the predefined `sentry.link.type` values in
the span links develop docs.

No SDK sets this link type, and the product doesn't read it. Span links
only point to spans that already exist, and the next trace doesn't exist
yet when the current trace is sent. The trace view finds the next trace
the other way around: it searches for a trace whose `previous_trace`
link points at the current trace (see `useFindLinkedTraces.ts` in
getsentry/sentry). The JS SDK already marks `next_trace` as "Not set by
the SDK".

`next_trace` is also still listed as an enum value in
`sentry-conventions` (`sentry__link__type.json`). That can be cleaned up
separately.

## IS YOUR CHANGE URGENT?

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## PRE-MERGE CHECKLIST

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)

<!-- junior-request-attribution:start -->
via **Sigrid Huemer**.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!-- junior-conversation-id:slack%3AC0CATDDN8TW%3A1792509038.539669 -->

--

[View Junior
Session](https://junior-prod.sentry.dev/conversations/slack%3AC0CATDDN8TW%3A1792509038.539669)
[[Sentry]](https://sentry.sentry.io/explore/conversations/slack%3AC0CATDDN8TW%3A1792509038.539669/?project=4510944073809921)

<!-- junior-session-footer:end -->

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: Sigrid Huemer <sigrid.huemer@sentry.io>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
The NestJS docs still recommend manual scope wrappers for handlers the
SDK already isolates. Document automatic isolation for scheduled tasks,
event handlers, and BullMQ processors, and use a BullMQ lifecycle
listener to demonstrate when manual isolation is still needed.

Fixes getsentry/sentry-javascript#19767
([JS-1923](https://linear.app/getsentry/issue/JS-1923)).

## IS YOUR CHANGE URGENT?

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

Co-authored-by: OpenAI GPT-6 <codex@openai.com>
…#19996)

## DESCRIBE YOUR PR

Most SDKs no longer need `enable_logs` / `enable_metrics` for their
manual logs and metrics APIs, and several have removed the options. A
few shared pages still told readers to set them:

- **What to Log guide:** drops the removed flags from the Ruby (SDK 7.0)
and Flutter (SDK 10) tabs, and switches the JavaScript tab to
`consoleLoggingIntegration`, since `captureConsoleIntegration` sends
console calls as errors, not logs.
- **Sentry Basics table:** the Logs row now says "Add log calls or a
logging integration" instead of "Enable `enableLogs: true`".
- **Manage Application Metrics quota:** "Disabling Metrics" now
recommends returning `null` from `beforeSendMetric` (or the SDK's
equivalent) instead of `enableMetrics` options that were removed or no
longer work.
- **Manage Logs quota:** drops the removed `enableLogs` from the
JavaScript example and `enable_logs` from the Python example, and fixes
the Python example's invalid keyword syntax.
- **Rails quick start:** adds a note that Rails structured logging is
disabled by default since Ruby SDK 7.1.0, using the Rails Logs page's
wording.

The guide's Python, .NET, Swift and Kotlin tabs keep their flags for
now. The flags still turn on logging integrations in Python 2.x, .NET
6.x and Java/Android 8.x, and the Apple docs still describe `enableLogs`
as required (follow-up).

Refs SDK-1533

## IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the
due date. You can update this information later by editing the PR
description.

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## SLA

- Teamwork makes the dream work, so please add a reviewer to your PRs.
- Please give the docs team up to 1 week to review your PR unless you've
supplied a deadline.

Thanks in advance for your help!

## PRE-MERGE CHECKLIST

_Make sure you've checked the following before merging your changes:_

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
<!-- Keep the urgency section so automation can prioritize this PR. You
may delete other sections you don't need. -->

## DESCRIBE YOUR PR

Adds a short "SCIM 2.0 Service Discovery" subsection under SCIM
Provisioning on the [SSO
page](https://docs.sentry.io/organization/authentication/sso/#scim-provisioning),
and links to it from the SAML2 page's SCIM section. It covers the RFC
7644 Section 4 discovery endpoints (`ServiceProviderConfig`,
`ResourceTypes`, `Schemas`) that getsentry/sentry#119884 completed: they
live under the SCIM URL shown in Sentry's auth settings, they require
the same Auth Token as the rest of the SCIM API, and identity governance
platforms such as SailPoint IdentityIQ need them to connect. The
per-endpoint reference pages are already live under
[/api/scim/](https://docs.sentry.io/api/scim/) from the automatic schema
bump, so this PR is prose only.

The matching update to the intro text on the `/api/scim/` page is in
getsentry/sentry#126535. Neither PR depends on the other.

#### Issues

* Refs: getsentry/sentry#114950
* Refs: ENG-7619

## IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the
due date. You can update this information later by editing the PR
description.

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
## DESCRIBE YOUR PR

The Python options page lists `trace_ignore_status_codes` as type
`bool`, but the option takes a set of HTTP status codes. This changes
the documented type to `AbstractSet[int]`. The default (`frozenset()`)
and description stay as they are.

Source evidence (sentry-python `2.72.0`, the latest release):
-
[`sentry_sdk/consts.py`](https://github.com/getsentry/sentry-python/blob/2.72.0/sentry_sdk/consts.py#L1448)
declares `trace_ignore_status_codes: "AbstractSet[int]" = frozenset()`
-
[`sentry_sdk/tracing.py`](https://github.com/getsentry/sentry-python/blob/2.72.0/sentry_sdk/tracing.py#L1024)
checks membership with `status_code in
client.options["trace_ignore_status_codes"]`

Corrected claim: `trace_ignore_status_codes` is `AbstractSet[int]` (for
example `{403, 404}`), not `bool`.

cc @getsentry/owners-python-sdk

## IS YOUR CHANGE URGENT?

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

<!-- junior-request-attribution:start -->
via Junior system actor `event`.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!--
junior-conversation-id:agent-dispatch%3Adispatch_51ed2321cd7553f06241dff253dee523
-->

--

[View Junior
Session](https://junior-prod.sentry.dev/conversations/agent-dispatch%3Adispatch_51ed2321cd7553f06241dff253dee523)
[[Sentry]](https://sentry.sentry.io/explore/conversations/agent-dispatch%3Adispatch_51ed2321cd7553f06241dff253dee523/?project=4510944073809921)

<!-- junior-session-footer:end -->

---------

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: Ivana Kellyer <ivana.kellyer@sentry.io>
## DESCRIBE YOUR PR

follow up to #19365

This fixes the Deno guide:

- Load `@sentry/deno/import` with `deno run --preload`, not as the first
import of the entry file.
- `--allow-read` is required when the hook is loaded. Without it, the
app stops at start with `NotCapable: Requires read access`. The guide
said that the SDK continues without it.
- The troubleshooting entry for the JSON crash now says to remove the
`--preload` flag.

## Why

Deno loads the whole static import graph before the first import runs.
With the first-import setup, the hook instrumented only CommonJS
packages such as `pg` and `mysql`. ES module packages such as `openai`
and `hono` stayed uninstrumented, with no warning (tested with
`@sentry/deno` 11.8.0 on Deno 2.8.3).

## IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the
due date. You can update this information later by editing the PR
description.

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## SLA

- Teamwork makes the dream work, so please add a reviewer to your PRs.
- Please give the docs team up to 1 week to review your PR unless you've
supplied a deadline.

Thanks in advance for your help!

## PRE-MERGE CHECKLIST

_Make sure you've checked the following before merging your changes:_

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#19990)

## DESCRIBE YOUR PR

Applies the quick start template from #19295 (Ember) to the .NET landing
page and 15 .NET guides: ASP.NET, ASP.NET Core, AWS Lambda, Azure
Functions Worker, Blazor Server, Blazor WebAssembly, Entity Framework,
MAUI, WinForms, WinUI, WPF, Xamarin, .NET for Android, .NET for Apple
(iOS/Mac Catalyst), and Google Cloud Functions. All pages keep their
single-column layout. The Serilog, NLog, log4net and
Microsoft.Extensions.Logging pages are logging integration guides and
are unchanged.

- Removes the onboarding option checkboxes and `___PRODUCT_OPTION___`
markers.
- Configure names the features each guide sets up. The init snippets
include all options by default, and a note explains that unwanted
options can be removed.
- **Logs:** `SentrySdk.Logger` works without an extra option. Guides
whose logging integrations need it (ASP.NET Core, AWS Lambda, Azure
Functions Worker, Blazor WebAssembly, MAUI) include `EnableLogs = true`.
Xamarin and Google Cloud Functions have no Send Logs step because the
Logs docs mark them as unsupported.
- **Application Metrics:** enabled by default (SDK 6.1.0+); every guide
except Xamarin has a Send Application Metrics step. `Sentry.Xamarin`
depends on Sentry 4.x, which doesn't have the current metrics API, so
the Metrics page now lists Xamarin as not supported.
- **Profiling:** on the .NET for Apple guide, and as an optional step
for .NET 8 and later on the .NET landing page, outside the default
install and snippet. The docs mark it unsupported on Android and Google
Cloud Functions.
- **Session Replay:** named on .NET for Android and .NET for Apple,
where it's documented.
- Simplifies Verify. The shared `getting-started-verify/dotnet*.mdx`
snippets are unchanged because other .NET guides (Serilog, NLog,
log4net, etc.) also render them.
- Fixes along the way: the AWS Lambda snippet used `o.TracesSampleRate`
inside an `options =>` lambda (also broken on `master`); a few stale
links and anchors on the Android and Apple guides; Google Cloud
Functions' `DiagnosticsLevel` typo (now `DiagnosticLevel`) with the JSON
wrapped in `{}`; metric attributes use `Dictionary<string, object>`
initializers so the snippets compile on .NET Framework (C# 7.3); every
ASP.NET Core setup tab sets the DSN; and the Android guide keeps Session
Replay text and image masking on.

## IS YOUR CHANGE URGENT?

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## PRE-MERGE CHECKLIST

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)

<!-- junior-request-attribution:start -->
via Junior system actor `event`.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!-- junior-conversation-id:slack%3AD0BB8KQT6MU%3A1792013336.218129 -->

--

[View Junior
Session](https://junior-prod.sentry.dev/conversations/slack%3AD0BB8KQT6MU%3A1792013336.218129)
[[Sentry]](https://sentry.sentry.io/explore/conversations/slack%3AD0BB8KQT6MU%3A1792013336.218129/?project=4510944073809921)

<!-- junior-session-footer:end -->

---------

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: Shannon Anahata <shannon.anahata@sentry.io>
## DESCRIBE YOUR PR

The PHP options page documents the `before_breadcrumb` callback as
returning a non-nullable `\Sentry\Breadcrumb`. The same section says the
breadcrumb is dropped when nothing is returned. The SDK expects the
callback to return `?\Sentry\Breadcrumb` and drops the breadcrumb on
`null`. This makes the return type nullable and says `null` explicitly.

Source evidence (sentry-php `4.34.0`, the latest release):
-
[`src/Options.php`](https://github.com/getsentry/sentry-php/blob/4.34.0/src/Options.php#L898)
documents the callback as `callable(Breadcrumb): ?Breadcrumb` for both
the getter and the setter
-
[`src/State/Hub.php`](https://github.com/getsentry/sentry-php/blob/4.34.0/src/State/Hub.php#L227-L235)
runs the callback and adds the breadcrumb only `if ($breadcrumb !==
null)`

Corrected claim: `function (\Sentry\Breadcrumb $breadcrumb):
?\Sentry\Breadcrumb`. Returning `null` drops the breadcrumb.

cc @Litarnus @stayallive

## IS YOUR CHANGE URGENT?

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

<!-- junior-request-attribution:start -->
via **Martin Linzmayer**.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!--
junior-conversation-id:agent-dispatch%3Adispatch_51ed2321cd7553f06241dff253dee523
-->

--

[View Junior
Session](https://junior-prod.sentry.dev/conversations/agent-dispatch%3Adispatch_51ed2321cd7553f06241dff253dee523)
[[Sentry]](https://sentry.sentry.io/explore/conversations/agent-dispatch%3Adispatch_51ed2321cd7553f06241dff253dee523/?project=4510944073809921)

<!-- junior-session-footer:end -->

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
…20128)

## DESCRIBE YOUR PR

The Python integration and agent tracing pages only describe
`send_default_pii`. This adds the `data_collection` alternative, naming
the specific key that controls each behavior.

- Web framework pages: mention `data_collection` next to
`send_default_pii`
- Django, Flask: `user_info`
- Redis, PyMongo, clickhouse-driver: `database_query_data`
- GQL, Graphene, Ariadne, Strawberry: `graphql` and `http_bodies` (also
fixes a typo on the Strawberry page claiming body capture was on by
default)
- MCP and agent tracing pages: `gen_ai`, and that `include_prompts` is
ignored when `data_collection` is set
- Rust Tracing: `data_collection` doesn't affect
`include_tracing_fields`
- Data Collected: `outgoing_response` is a valid `http_bodies` type and
part of the default (used by Ariadne and Strawberry)
- Mention `data_collection` before `send_default_pii` everywhere, and
note that `send_default_pii` will be removed in version 3.0 of the SDK
(also updates Options, Data Collected and Sensitive Data, which said it
would only be deprecated eventually)
- AI pages and Data Collected: clarify that prompts, messages, and
responses aren't recorded by default, but some tool data is (tool
definitions, LangChain and Google GenAI tool calls, MCP arguments), and
how to remove it

Init snippets still use `send_default_pii=True`; that'll be handled
separately.

## IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the
due date. You can update this information later by editing the PR
description.

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## SLA

- Teamwork makes the dream work, so please add a reviewer to your PRs.
- Please give the docs team up to 1 week to review your PR unless you've
supplied a deadline.

Thanks in advance for your help!

## PRE-MERGE CHECKLIST

_Make sure you've checked the following before merging your changes:_

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)
## DESCRIBE YOUR PR

Replace `send_default_pii=True` in Python init snippets with a
`data_collection` example, using the key that fits each page.
`send_default_pii` will be removed in version 3.0 of the SDK.

- `user_info`: shared getting-started/config includes, general pages,
web frameworks, logging, feature flags, etc.
- `gen_ai`: AI agent tracing pages and MCP
- `queues`: Celery, RQ
- `database_query_data`: aiomysql
- `graphql`: Strawberry

Snippets demonstrating `include_prompts`, `event_scrubber`, or Rust
Tracing's `include_tracing_fields` keep `send_default_pii`, since those
only work with it. The GQL, Graphene, Ariadne, and second Strawberry
snippets are left alone because #20128 keeps them as the
`send_default_pii` alternative.

Related: #20128

## IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the
due date. You can update this information later by editing the PR
description.

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## SLA

- Teamwork makes the dream work, so please add a reviewer to your PRs.
- Please give the docs team up to 1 week to review your PR unless you've
supplied a deadline.

Thanks in advance for your help!

## PRE-MERGE CHECKLIST

_Make sure you've checked the following before merging your changes:_

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)
…20131)

## DESCRIBE YOUR PR

The manual AI and MCP instrumentation pages implied that prompt,
response, and tool content you set yourself is only captured with
`send_default_pii=True`. The SDK doesn't filter manually set attributes
based on `send_default_pii` or `data_collection`, so this updates the
pages to say that.

- Manual Instrumentation: replace the `send_default_pii` claim, and
point the privacy reference at `data_collection`
- MCP custom instrumentation: align the tool-argument comment with the
prompt examples on the same page

Related: #20128

## IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the
due date. You can update this information later by editing the PR
description.

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## SLA

- Teamwork makes the dream work, so please add a reviewer to your PRs.
- Please give the docs team up to 1 week to review your PR unless you've
supplied a deadline.

Thanks in advance for your help!

## PRE-MERGE CHECKLIST

_Make sure you've checked the following before merging your changes:_

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
…es to search (#19870)

## DESCRIBE YOUR PR
- New product page for Explore feature as a whole
- New dropped data feature page
- New searchable properties pages for Logs and Metrics
- Updated explore-related pages to link to new explore page

**Note:**
Screenshots and arcades are pending EA-ready updates for dropped data. 

## IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the
due date. You can update this information later by editing the PR
description.

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [x] Other deadline: 2026-10-16
- [ ] No deadline: Not urgent, can wait up to 1 week+

## SLA

- Teamwork makes the dream work, so please add a reviewer to your PRs.
- Please give the docs team up to 1 week to review your PR unless you've
supplied a deadline.

Thanks in advance for your help!

## PRE-MERGE CHECKLIST

_Make sure you've checked the following before merging your changes:_

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)

---------

Co-authored-by: Shannon Anahata <shannonanahata@gmail.com>
Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
sentry-api-schema-updater Bot and others added 10 commits October 26, 2026 17:16
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
…#20225)

## DESCRIBE YOUR PR

Production build URLs (`sentry-docs-<hash>.sentry.dev`) now serve their
own pages to requests that have an `x-sentry-evals-pin` header, instead
of 308ing them to docs.sentry.io. Everyone else is still redirected as
in #19033, and these responses still get `X-Robots-Tag: noindex`.

[sentry-for-ai-evals](https://github.com/getsentry/sentry-for-ai-evals)
compares a docs PR's preview with the docs at the PR's merge base, and
that commit's production build is the only copy of those. The redirect
sends the evals to the live docs instead, so a PR that's behind master
gets everything master gained since counted as its own change. The
evals' docs proxy sends the header, and #20214 points the base at the
merge base's build. Like the redirect, the header isn't a security
boundary: previews are already public, and an old build only has docs
that were once live.

Only builds made after this merges check for the header, so older merge
bases keep reading the live docs.

Refs
[VDY-307](https://linear.app/getsentry/issue/VDY-307/onboarding-evals-ai-evals-label-workflow-in-sentry-docs)

## IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the
due date. You can update this information later by editing the PR
description.

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## SLA

- Teamwork makes the dream work, so please add a reviewer to your PRs.
- Please give the docs team up to 1 week to review your PR unless you've
supplied a deadline.

Thanks in advance for your help!

## PRE-MERGE CHECKLIST

_Make sure you've checked the following before merging your changes:_

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
## DESCRIBE YOUR PR

Adds an `AI Evals` workflow that runs the
[sentry-for-ai-evals](https://github.com/getsentry/sentry-for-ai-evals)
suites on a PR labeled `ai-evals:<mark>[:<models>][:x<count>]`, the same
labels sentry-for-ai uses. Both sides use the skills from
sentry-for-ai's `main`, so only the docs differ. The head reads
docs.sentry.io from the PR's Vercel preview
([sentry-for-ai-evals#77](getsentry/sentry-for-ai-evals#77)),
and the base reads the production deploy of the PR's merge base. Results
go to evals.sentry.dev, whose bot comments on the PR with each label's
runs, and a new push reruns every eval label still on the PR.

- The plan job waits for the Vercel preview before it creates the runs,
since evals.sentry.dev fails a run that gets no result for 30 minutes. A
preview is ready about 7 minutes after a push. If Vercel skips the
sentry-docs build (a PR that only changes develop-docs), the build
fails, or a newer push supersedes the commit, the job stops without
starting any evals.
- Each test a label selects runs in its own job, on each side and each
target the label picked, so tests don't share a container and run at the
same time
([sentry-for-ai-evals#90](getsentry/sentry-for-ai-evals#90)).
A last `:x<count>` runs each test that many times
([sentry-for-ai-evals#94](getsentry/sentry-for-ai-evals#94)).
Jobs are named by the test's number and pass run-evals `test-index`,
`test-total` and `count`, so this repo's logs don't name the internal
repo's tests
([sentry-for-ai-evals#97](getsentry/sentry-for-ai-evals#97)).
- Production deploys redirect every page to docs.sentry.io unless the
request has the header the evals' docs proxy sends
([#20225](#20225),
[sentry-for-ai-evals#96](getsentry/sentry-for-ai-evals#96)).
A merge base whose deploy was built before #20225, or that has no
production deploy, still redirects, so the base reads the live docs and
the plan job warns with how many of `master`'s commits the head is
missing. Updating the branch reruns the evals.
- `labels.yml` gets `ai-evals:llms_txt:sonnet-5.5:x3`, which runs the
test that starts from llms.txt three times per side on Sonnet 5.5, for
PRs that change llms.txt. That test gives the agent no Sentry skills or
MCP, only the docs
([sentry-for-ai-evals#92](getsentry/sentry-for-ai-evals#92),
[#89](getsentry/sentry-for-ai-evals#89)). Unlike
sentry-for-ai there's no `ai-evals:products` label, since it starts 8
jobs on every push. The label sync deletes any label missing from that
file, so it also adds `Good First Issue` and `js-v11-docs`, which exist
on the repo but not in the file.
- Fork PRs get no secrets, so the workflow skips them.

Tested through
[#20217](#20217), #20116's
diff on top of this branch: `ai-evals:llms_txt:opus-5.5` completed with
the head reading the preview's llms.txt, and `ai-evals:llms_txt:x3`
passed 6 of 6 on each side. Then on this PR, rebased on #20225:
`ai-evals:llms_txt:sonnet-5.5:x3` passed 3 of 3 on each side, with the
base reading the merge base's production deploy and the jobs named `test
1` to `test 3`. The fallback ran locally: #20116's merge base, built
before #20225, gets the live docs and the warning (102 commits behind).

Fixes
[VDY-307](https://linear.app/getsentry/issue/VDY-307/onboarding-evals-ai-evals-label-workflow-in-sentry-docs)

## IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the
due date. You can update this information later by editing the PR
description.

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## SLA

- Teamwork makes the dream work, so please add a reviewer to your PRs.
- Please give the docs team up to 1 week to review your PR unless you've
supplied a deadline.

Thanks in advance for your help!

## PRE-MERGE CHECKLIST

_Make sure you've checked the following before merging your changes:_

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
…#20014)

## DESCRIBE YOUR PR

Applies the quick start template from #19295 (Ember) to the Godot quick
start (`docs/platforms/godot/index.mdx`), single-column.

- Configure names Error Monitoring (crashes plus script and shader
errors), Tracing (SDK 2.2.0+), Logs, Application Metrics and User
Feedback. Session Replay and Profiling aren't supported and are left
out.
- Project Settings stays the primary setup path. The code snippet (for
initializing in code with Auto Init off) turns on Tracing and scene tree
attachments, with a note that unwanted options can be removed.
Screenshots (experimental) are linked from Next Steps instead of turned
on.
- **Logs** (always on since 2.2.0) and **Application Metrics** (on by
default since 2.0.0): new steps, no setting needed.
- Debug symbols, Android export and C# error capture moved into
Configure.
- Simplifies Verify to a single test message.

`platform-includes/getting-started-config/godot.mdx` changed; it's only
rendered by the Godot quick start.

## IS YOUR CHANGE URGENT?

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## PRE-MERGE CHECKLIST

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)

<!-- junior-request-attribution:start -->
via **shannon.anahata**.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!-- junior-conversation-id:slack%3AD0BB8KQT6MU%3A1792013336.218129 -->

--

[View Junior
Session](https://junior-prod.sentry.dev/conversations/slack%3AD0BB8KQT6MU%3A1792013336.218129)
[[Sentry]](https://sentry.sentry.io/explore/conversations/slack%3AD0BB8KQT6MU%3A1792013336.218129/?project=4510944073809921)

<!-- junior-session-footer:end -->

---------

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
Co-authored-by: Shannon Anahata <shannon.anahata@sentry.io>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
## DESCRIBE YOUR PR

docs.sentry.io/llms.txt and the root `SKILL.md` send agents to
`skills.sentry.dev/workflows` and `/features`. Both return a 404,
because their skills were removed from
[sentry-for-ai](https://github.com/getsentry/sentry-for-ai). Over 3 days
of skills.sentry.dev CDN logs, they still got 41 and 27 requests.

This PR replaces them with links to the skills that exist today. All of
them return 200 now.

- **`scripts/generate-llms-txt.mjs`** (the "Browse the skill library"
list in llms.txt): keep All Skills, and replace SDK Setup, Workflows and
Features with Get Started, Instrument, Debug an Issue, Alerts and OTel
Collector.
- **`SKILL.md`:**
- Make the same link swap. This also replaces `/sdks`, which is only a
redirect to `/instrument`.
- Change the install line to `npx @sentry/agent-plugin install`, so it
matches llms.txt and the [Agent Plugin
page](https://docs.sentry.io/ai/agent-plugin/).

**Verification**

- `pnpm lint` and `pnpm test` pass (497 tests).
- I ran `scripts/generate-llms-txt.mjs` locally. Every
`skills.sentry.dev` link in the output returns 200:

| URL | Status |
| --- | --- |
| `https://skills.sentry.dev/` | 200 |
| `https://skills.sentry.dev/sentry-get-started/SKILL.md` | 200 |
| `https://skills.sentry.dev/instrument` | 200 |
| `https://skills.sentry.dev/sentry-debug-issue/SKILL.md` | 200 |
| `https://skills.sentry.dev/sentry-create-alert/SKILL.md` | 200 |
| `https://skills.sentry.dev/sentry-otel-exporter-setup/SKILL.md` | 200
|

## IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the
due date. You can update this information later by editing the PR
description.

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## SLA

- Teamwork makes the dream work, so please add a reviewer to your PRs.
- Please give the docs team up to 1 week to review your PR unless you've
supplied a deadline.

Thanks in advance for your help!

## PRE-MERGE CHECKLIST

_Make sure you've checked the following before merging your changes:_

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…20234)

## DESCRIBE YOUR PR

Fixes #20226.

When no platform is active, `PlatformLink` points at
`/platform-redirect/?next=<encoded path>`. `sanitizeNext` returned only
`url.pathname`, so the anchor was dropped from both the redirect and the
links on the selection page. Around 770 `PlatformLink` uses carry an
anchor.

Reproduced before the fix:

```
$ curl -sI '.../platform-redirect/?next=/configuration/options/%23tracing-options&platform=python'
HTTP/2 307
location: /platforms/python//configuration/options/     ← no fragment, and a double slash
```

The fragment can't just be appended to the returned path — `page.tsx`
feeds that value into `nodeForPath(...pathname.split('/'))`, so a
`#frag` segment would break doc tree resolution and fall through to *"We
couldn't find documentation for this path"*. So the path and the
fragment are now returned separately, and only the two URL-building
sites append the fragment.

- `sanitizeNext` returns `{pathname, hash}`; every doc tree lookup keeps
using `pathname` alone
- Fragments are allowlisted (`/^#[\w.-]+$/`, which covers slugs like
`godot_logger.event_mask`); an unrecognized fragment is dropped rather
than failing the whole redirect
- Adds `platformUrlFor`, which joins the platform URL with the path
without leaving the `//` that made **every** platform redirect 308 a
second time
- Drive-by: four `PlatformLink`s had a trailing slash appended *after*
the fragment by older trailing-slash tooling, so their anchors matched
nothing. The two Flutter ones also pointed through a redirect at an id
that no longer exists, and now go straight to
`/debug-symbols/#when-to-upload-debug-symbols`

### Security

The existing hardening is deliberately untouched — the colon guard still
runs on the whole decoded string before parsing (so
`javascript:`/`data:` are still rejected), the origin check is
unchanged, and a fragment is only ever appended to a doc-tree-resolved
URL, so it can't influence the origin. New tests cover
`/a/#@example.com` and `/a/#//example.com` being dropped, plus `%2523`
double-encoding.

### Verification

- 516/516 vitest tests pass (25 in `utils.spec.ts`, up from 16)
- `tsc`, eslint and prettier clean
- `pnpm lint:trailing-slash` clean — the current linter is already
fragment-aware, so the four fixed anchors don't regress

## IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs
to go live.
Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the
due date. You can update this information later by editing the PR
description.

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

## SLA

- Teamwork makes the dream work, so please add a reviewer to your PRs.
- Please give the docs team up to 1 week to review your PR unless you've
supplied a deadline.

Thanks in advance for your help!

## PRE-MERGE CHECKLIST

_Make sure you've checked the following before merging your changes:_

- [ ] Checked Vercel preview for correctness, including links
- [ ] PR was reviewed and approved by any necessary SMEs (subject matter
experts)
- [ ] PR was reviewed and approved by a member of the [Sentry docs
team](https://github.com/orgs/getsentry/teams/docs)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: sentry-api-schema-updater[bot] <271575301+sentry-api-schema-updater[bot]@users.noreply.github.com>
@vercel

vercel Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
sentry-docs Ready Ready Preview Oct 27, 2026 8:51am UTC
1 Skipped Deployment
Project Deployment Actions Updated
develop-docs Ignored Ignored Preview Oct 27, 2026 8:51am UTC

Request Review

@github-actions github-actions Bot added sdk-develop-docs PRs touching develop-docs/sdk Priority: Needs Triage The PR description is missing valid priority information labels Oct 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Please update the IS YOUR CHANGE URGENT? section of the PR description:

  • Select exactly one option.
  • If you selected an urgent or other deadline, provide the date as YYYY-MM-DD.

This information helps the Docs team prioritize your review.

@codeowner-assignment
codeowner-assignment Bot requested review from a team October 27, 2026 08:31
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

🏷 The following changes will be made to the repository labels

Progress: resolved 1, reused 0, downloaded 0, added 0
 WARN  3 deprecated subdependencies found: har-validator@5.1.5, request@2.88.2, uuid@3.4.0
Packages: +104
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 104, reused 0, downloaded 104, added 104, done
Syncing labels for "getsentry/sentry-docs"
Validating provided labels
Fetching labels from GitHub
Labels are already up to date

@cursor

cursor Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

The change publishes a week of documentation and routing updates. A former redirect now serves a landing page. Platform redirects keep heading fragments. Watch page loads, 404 counts, client TypeErrors, and redirect failures. An issue escalates when 404s or TypeErrors rise, or when those redirects fail.

Services: sentry-docs, develop-docs.

Mention @change-monitor in a comment to update the plan.

Plan

What changed

Requests to /product/explore/ now serve an Explore landing page. They no longer redirect to /product/trace-explorer/.
Platform-redirect now keeps a safe heading hash on the destination URL.
The home page adds an Anthropic agent card. New pages cover dropped data, Claude OTLP, and code mappings.
Many platform getting-started pages change. Sidebar sections with a hidden landing page show an Overview link.

This ships when sentry-docs and develop-docs deploy. Shared app/ and src/ code goes to both. docs/ content goes to sentry-docs. develop-docs/ content goes to develop-docs. The pull request merges master into java-v9. The report-rollouts workflow maps Production – sentry-docs and Production – develop-docs to those catalog ids.

Risk

A bad next sanitize can drop platform-redirects or send users to the wrong path. That hits every platform-chooser link.
Removing the Explore redirects without a built page would 404 former /product/explore/ traffic.
Broken MDX can 404 rewritten platform pages. JavaScript guides are the largest rewrite and already lead 404s.
A DynamicNav mistake can hide section links. Users then miss feature overviews.
The evals pin header only skips canonical redirects when that header is present. Normal clients should not change host.

Intended effect

Confirmed means the new Explore landing is reachable and platform-redirect still serves. Product page loads hold or rise. Platform-redirect keeps its volume and stays at zero error spans.
Absent means product page loads fall below the band while platforms loads hold. Absent also means platform-redirect error spans appear, or its volume falls while classified traffic holds.
Static page URLs do not show in http.server traces. Do not treat a missing pageload segment as proof the page is down.

Signal Baseline Rule Source
docs.page.load page_type:product 2107-3368 counts per 24h Hold in band or rise above it Sentry metrics project docs, metric.name:docs.page.load AND metric.type:counter AND sentry.environment:production, group page_type. Windows 2026-10-26T08:32Z/2026-10-27T08:32Z = 3368 and 2026-10-25T08:32Z/2026-10-26T08:32Z = 2107
docs.page.load page_type:home 712-971 counts per 24h Hold in band Same query. Windows 2026-10-26T08:32Z/2026-10-27T08:32Z = 971 and 2026-10-25T08:32Z/2026-10-26T08:32Z = 712
GET /platform-redirect http.server count 4006-4567 spans per 24h Hold in band Sentry traces project docs, span.op:http.server http.request.method:GET http.route:/platform-redirect sentry.environment:production. Traces sample at 30%. Windows 2026-10-26T08:32Z/2026-10-27T08:32Z = 4567 and 2026-10-25T08:32Z/2026-10-26T08:32Z = 4006 from the 48h total 8573
GET /platform-redirect error spans 0 in 24h and 0 in 48h Hold at 0 Same trace query. count_if(span.status:error) was 0 in 2026-10-26T08:32Z/2026-10-27T08:32Z and in 2026-10-25T08:32Z/2026-10-27T08:32Z

Classified request volume on docs held at 2.18M-2.31M user requests per 24h. Use that to judge a traffic shift versus a broken path. Query metric.name:docs.request.classified AND metric.type:counter AND sentry.environment:production, group traffic_type, project docs.

Regression watch

Watch 404s first. The Explore redirect is gone, so a missing landing page 404s /product/explore/. JavaScript guide rewrites can 404 platforms/javascript.
Watch client TypeErrors for nav, home, and platform-redirect UI breaks.
Watch platform-redirect latency and errors for the new hash join.
Watch platforms page loads for a drop on rewritten SDK pages.

Signal Baseline Rule Source
docs.page.not_found 43-85 counts per 24h. Share of docs.page.load was 85/18598 = 0.46% in the later window Hold in 43-85. Escalate if the count rises above 85 while page loads hold Sentry metrics project docs, metric.name:docs.page.not_found AND metric.type:counter AND sentry.environment:production. Windows 2026-10-26T08:32Z/2026-10-27T08:32Z = 85 and 2026-10-25T08:32Z/2026-10-26T08:32Z = 43 from the 48h total 128. Pair with docs.page.load total 18598 in the later 24h
docs.page.not_found requested_path:platforms/javascript 44 counts in 48h Hold near 44 per matching 48h window. Escalate if a 48h window exceeds 44 while platforms page loads hold Same metric, group requested_path. Window 2026-10-25T08:32Z/2026-10-27T08:32Z. This path was the top 404 slice
docs.page.not_found requested_path:product/explore 0 in the 48h top paths. The smallest listed path had 1 Hold at 0. A rise means the new landing page 404s Same grouped 404 query, window 2026-10-25T08:32Z/2026-10-27T08:32Z. product/explore was not present
TypeError events, project docs, production 51-75 events per 24h Hold in band. Escalate if the count rises above 75 while page loads hold Sentry errors project docs, error.type:TypeError AND environment:production. Windows 2026-10-26T08:32Z/2026-10-27T08:32Z = 75 and 2026-10-25T08:32Z/2026-10-26T08:32Z = 51 from the 48h total 126
GET /platform-redirect p95 duration 2080-2113ms Hold in band. Escalate if p95 rises above 2113ms or error spans leave 0 Same http.server GET /platform-redirect query. p95 = 2113ms in 2026-10-26T08:32Z/2026-10-27T08:32Z and 2080ms in 2026-10-25T08:32Z/2026-10-27T08:32Z
docs.page.load page_type:platforms 10067-15910 counts per 24h Hold in band. Escalate if the count falls below 10067 while classified user traffic holds Sentry metrics docs.page.load as above. Windows 2026-10-26T08:32Z/2026-10-27T08:32Z = 10067 and 2026-10-25T08:32Z/2026-10-26T08:32Z = 15910

If 404s rise, check requested_path for product/explore, platforms/javascript, integrations/source-code-mgmt, and concepts/otlp.
If TypeErrors rise, check DynamicNav and the home agent cards.

Not observable

Per-URL loads for static pages. Pageload queries on product/explore, product/trace-explorer, platforms/java, and concepts/otlp returned no segment names. Only /platform-redirect matched. The executor cannot confirm the new Explore landing from traces alone.
Whether platform-redirect destinations keep the heading hash. No metric records the fragment.
Whether x-sentry-evals-pin skips canonical redirects. That path is not user traffic.
develop-docs TypeError and 404 counts for 2026-10-25T08:32Z/2026-10-26T08:32Z. One 24h window was read: TypeError 25, docs.page.not_found 106, docs.page.load 1452, project develop-docs, 2026-10-26T08:32Z/2026-10-27T08:32Z. There is no prior-day band. Compare a post-deploy 24h window to those values with caution.
The pre-ship 404 rate for only the rewritten MDX pages. docs.page.not_found truncates to two path segments.

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

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.

Fix All in Cursor

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

Reviewed by Cursor Bugbot for commit 764affd. Configure here.

echo "sha=$base_tip" >> "$GITHUB_OUTPUT"
if (( behind > 0 )); then
echo "::warning::The merge base $merge_base has no production deploy that serves its own pages, so the base reads the live docs. The head is missing $behind of the base branch's commits, so the preview lacks changes the live docs have, and the comparison counts their removal as part of this PR. Update the branch to compare only this PR's changes, which reruns the evals."
fi

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Base evals missing live docs URL

Medium Severity

When the merge base has no pin-capable production deploy, the base step sets sha but never sets url. base-docs-url is then empty, and base-revision eval jobs pass a blank docs-url into run-evals. The comments describe falling back to the live docs, but that URL is never written.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 764affd. Configure here.

…20244)

## DESCRIBE YOUR PR

The Python `max_request_body_size` option docs say the `small` cutoff
"depends on the SDK (typically 4KB)". In the Python SDK, `small`
captures request bodies up to 1,000 bytes and `medium` captures bodies
up to 10,000 bytes.

**Source evidence (sentry-python `2.73.0`):**
`request_body_within_bounds` in
[`sentry_sdk/integrations/_wsgi_common.py`](https://github.com/getsentry/sentry-python/blob/2.73.0/sentry_sdk/integrations/_wsgi_common.py#L55-L66)
drops the body when `bodies == "small" and content_length > 10**3` or
`bodies == "medium" and content_length > 10**4`. The WSGI, Starlette,
Tornado, Ariadne, and Dramatiq integrations all use this helper.

**Corrected wording:**
- `small`: Only small request bodies (up to 1,000 bytes) will be
captured.
- `medium`: Medium and small request bodies (up to 10,000 bytes) will be
captured.

cc @getsentry/owners-python-sdk @sentrivana @alexander-alderman-webb

## IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs
to go live.

- [ ] Urgent deadline (GA date, etc.): YYYY-MM-DD
- [ ] Other deadline: YYYY-MM-DD
- [x] No deadline: Not urgent, can wait up to 1 week+

<!-- junior-request-attribution:start -->
via [automation
`sched_fe39d4dd0d4e77a4b4463de325041d04`](https://junior-prod.sentry.dev/automations/sched_fe39d4dd0d4e77a4b4463de325041d04)
· Run ID `sched_fe39d4dd0d4e77a4b4463de325041d04:1793088000000`.
<!-- junior-request-attribution:end -->

<!-- junior-session-footer:start -->
<!--
junior-conversation-id:agent-dispatch%3Adispatch_ebf5f0d7704acbc7b78cc23a35e9d8b7
-->

--

[View Junior
Session](https://junior-prod.sentry.dev/conversations/agent-dispatch%3Adispatch_ebf5f0d7704acbc7b78cc23a35e9d8b7)
[[Sentry]](https://sentry.sentry.io/explore/conversations/agent-dispatch%3Adispatch_ebf5f0d7704acbc7b78cc23a35e9d8b7/?project=4510944073809921)

<!-- junior-session-footer:end -->

Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com>
@codeowner-assignment
codeowner-assignment Bot requested review from a team October 27, 2026 08:38
@runningcode
runningcode merged commit 598a1a9 into java-v9 Oct 27, 2026
24 checks passed

This branch was successfully deployed

1 active deployment
Production – sentry-docs — c643b509 Deployed Oct 27, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Priority: Needs Triage The PR description is missing valid priority information sdk-develop-docs PRs touching develop-docs/sdk

Projects

None yet

Development

Successfully merging this pull request may close these issues.