Skip to content

feat: add cache_dir header for external crash reporters#1698

Open
jpnurmi wants to merge 3 commits intomasterfrom
jpnurmi/fix/cache-external
Open

feat: add cache_dir header for external crash reporters#1698
jpnurmi wants to merge 3 commits intomasterfrom
jpnurmi/fix/cache-external

Conversation

@jpnurmi
Copy link
Copy Markdown
Collaborator

@jpnurmi jpnurmi commented May 5, 2026

External crash reporters only receive the envelope path, so include the cache directory in envelope headers when cache_keep is enabled. This lets capable reporters cache related files without changing the single-argument CLI protocol.

See also:

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 3454003

Comment thread src/sentry_core.c
jpnurmi and others added 2 commits May 5, 2026 10:07
External crash reporters only receive the envelope path, so include the cache
directory in envelope headers when cache_keep is enabled. This lets capable
reporters cache related files without changing the one-argument protocol.

Fixes GH-1688
Co-Authored-By: OpenAI Codex <noreply@openai.com>
@jpnurmi jpnurmi force-pushed the jpnurmi/fix/cache-external branch from b6943ef to 2cab8cd Compare May 5, 2026 08:10
The native crash daemon loads crash envelopes from disk as raw envelopes.
Materialize them before launching an external crash reporter when cache_keep
is enabled, so the shared launcher can add the cache_dir header without
mutating raw envelopes itself.

Refs GH-1688
Co-Authored-By: OpenAI Codex <noreply@openai.com>
Copy link
Copy Markdown

@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.

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 3454003. Configure here.

SENTRY_WARN("Failed to materialize envelope for external crash report");
sentry_envelope_free(envelope);
goto cleanup;
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Materialization failure silently drops entire crash report

Medium Severity

When cache_keep and external_crash_reporter are both set and sentry__envelope_materialize fails, the envelope is freed and execution jumps to cleanup, completely dropping the crash report. Previously, the crash would always be sent (either externally or directly). The cache_dir header is a non-critical enhancement, so a materialization failure here needlessly loses crash data. By contrast, sentry__launch_external_crash_reporter in sentry_core.c handles this gracefully — it logs a warning but still sends the envelope without the header.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3454003. Configure here.

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.

2 participants