Skip to content

Conversation

@JoshuaMoelans
Copy link
Member

@JoshuaMoelans JoshuaMoelans commented Aug 29, 2025

Fixes #1342


Truncation occurrences

MAX_ENVELOPE_ITEMS

See definition https://github.com/getsentry/sentry-native/blob/master/src/sentry_envelope.h#L13

This is only used in envelope_add_item (here) which can only trigger for attachments (since the other APIs calling add_item all capture the envelope after adding the first item), so if a user sets more than 9 attachments we would lose the 10th onward.

The Envelopes docs mention that we accept as most 100 sessions per envelope, which is presumably where this MAX_ENVELOPE_ITEMS originated from. The question now is whether this also applies to other envelope items (like attachments/events/...)?

Tags

The following was observed with this snippet:

Code Snippet ```c sentry_transaction_context_t *tx_ctx = sentry_transaction_context_new("my_tx", "op"); sentry_transaction_t *tx = sentry_transaction_start(tx_ctx, sentry_value_new_null()); sentry_span_t *span = sentry_transaction_start_child(tx, "span_op", "span_desc"); char *tag = "supermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagname"; char *tag_val = "supermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagnamesupermegalongtagname"; sentry_set_tag(tag, tag_val); sentry_span_set_tag(span, tag, tag_val); sentry_span_finish(span); sentry_transaction_finish(tx); sentry_value_t event = sentry_value_new_message_event( SENTRY_LEVEL_INFO, "my-logger", "Hello World!"); ```

sentry_span_set_tag

(from a prior discussion, TBD if this is still true)

We keep SDK-side truncation as span tags are soon to be deprecated (replaced by span attributes, which have way larger length limits (or possibly have no limited)).

code here and mention of truncation for sentry_span_set_tag here

removed in a9712b2 but seems like this is not truncated during ingestion... docs mention that tags must be less than 200 characters
Screenshot 2025-08-29 at 10 47 40

Product doesn't seem to like these large values for searchability
Screenshot 2025-08-29 at 10 53 03

sentry_set_tag

Correctly gets truncated to 200 characters in Relay (count including ...)
Screenshot 2025-10-17 at 09 38 04

Out-of-Scope

Stack Traces

It was decided that Stack Trace Truncation was out of scope for this first round of SDK truncation logic updates (TODO: link new Linear ticket for this topic)

🔍 sentry_unwind_stack(..., max_frames)

Code here. Need to investigate if this is something we should be truncating still, or if Relay can handle this.

🔍 inproc MAX_FRAMES

Code here and used for unwinding the stack here

Keep truncation

@github-actions
Copy link

github-actions bot commented Aug 29, 2025

Fails
🚫 Please consider adding a changelog entry for the next release.

Instructions and example for changelog

Please add an entry to CHANGELOG.md to the "Unreleased" section. Make sure the entry includes this PR's number.

Example:

## Unreleased

- SDK Truncation Logic ([#1347](https://github.com/getsentry/sentry-native/pull/1347))

If none of the above apply, you can opt out of this check by adding #skip-changelog to the PR description or adding a skip-changelog label.

Generated by 🚫 dangerJS against a9712b2

@JoshuaMoelans JoshuaMoelans changed the title no longer truncate tag value chore: SDK Truncation Logic Sep 8, 2025
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.

chore: SDK Truncation Logic

2 participants