Skip to content

Frequently Asked Questions

Does Safedump send data anywhere?

No. Safedump is completely offline. It never makes network connections. Crash reports are stored locally on your filesystem.

Is it safe to share crash reports?

Yes (after review). By default, Safedump redacts variable names like password, token, and secret, and detects credential patterns. The report includes a redaction audit trail. Still, always review before sharing publicly.

What's the performance overhead?

Zero during normal execution. Safedump only runs when an unhandled exception occurs. Crash capture takes approximately 4ms for a typical 20-frame traceback.

What Python versions are supported?

3.9 through 3.13. Tested on all versions in CI on both Linux and Windows.

Can I use this in production?

Yes. Use configure(preset="production") (privacy tier 1, no env capture, no argv). Safedump is designed to fail gracefully -- if the handler itself crashes, the original traceback is always preserved.

How do I capture a crash without installing global hooks?

Use safedump.watch() for scoped monitoring, or call safedump.capture_exception() inside except blocks.

Can I customize what gets redacted?

Yes. Use RedactionRule for custom regex patterns, and configure the privacy tier to control capture detail.

Does Safedump support Windows?

Yes. Windows 11 is tested in CI. Crash reports fall back to the system temp directory (via tempfile.gettempdir()) instead of hardcoded /tmp.

How do I view crash reports from another machine?

Copy the .safedump.json file to your machine and run safedump view <path> or safedump view --html <path> to generate a self-contained HTML file.

What happens if Safedump itself crashes during capture?

The original Python traceback is always preserved. A Safedump internal error message is printed to stderr, followed by the original traceback. Your application's crash information is never lost.

How do compressed reports work?

When compress=True is configured, reports are saved as .safedump.json.gz files. They are transparently decompressed when read via load_report(). All CLI commands handle both formats.

Does Safedump have a plugin system?

The register_serializer() function allows custom type serialization. A full plugin system via importlib.metadata entry points is planned for a future release.