Quick answer: Capture crashes from Flatpak and Snap packages with the package format, runtime version, and sandbox-permission context, because these containerized formats bundle runtimes and restrict filesystem and resource access. The sandbox context is what distinguishes a permission-denied crash from a genuine bug in your code.
Flatpak and Snap have become major ways to distribute Linux games, and they solve the fragmentation problem that plagues native Linux distribution by bundling a runtime and sandboxing the application. That sandboxing is a real benefit, consistent dependencies, better security, and a source of new, format-specific crashes, because the sandbox restricts what your game can access. A game that runs fine natively can crash inside a Flatpak or Snap because the sandbox denied something it needed. Crash reporting for these formats must capture the sandbox and runtime context that explains these container-specific failures.
Containerized formats trade fragmentation for a sandbox
Flatpak and Snap address the core problem of native Linux distribution, the fragmentation of library and dependency versions across distributions, by bundling a consistent runtime with your game and running it in a sandbox. This means your game runs against the same dependencies everywhere, which eliminates a whole class of native Linux library-version crashes. It is a genuine improvement for distributing Linux games reliably.
The trade-off is the sandbox. To run your game in a controlled, secure container, these formats restrict what it can access, the filesystem, the network, system resources, are all limited by the sandbox permissions. This solves the dependency problem but introduces a new one: your game can crash because the sandbox denied an operation it expected to succeed, a crash that exists only inside the container and never in native execution, which is exactly the kind of format-specific failure you need to capture and understand.
Capture the package format and runtime
The first essential context is which format the game is running as, Flatpak, Snap, or native, and the runtime version bundled with it. A crash specific to the Flatpak build, or to a particular runtime version, points at a format or runtime issue rather than a bug in your game logic, and you cannot make that distinction without knowing the package format and runtime.
Capture the format and runtime on every crash so you can separate native crashes from containerized ones and from each other. The bundled runtime is a controlled environment, so a crash tied to a specific runtime version is a runtime compatibility issue you can address by targeting a different runtime, while a crash across all formats is a genuine game bug. The format and runtime context is what lets you route each crash to the right kind of investigation, which is essential when you ship the same game across native, Flatpak, and Snap.
Sandbox permissions and portals
The defining source of container-specific crashes is the sandbox permission system. Flatpak and Snap restrict filesystem access, network access, and access to system resources, granting them through declared permissions and, for some operations, through portals that mediate access. If your game tries to access something the sandbox does not permit, the operation fails, and code that assumed access crashes.
These permission crashes are insidious because they never appear in native testing, where there is no sandbox, and only show up in the packaged sandboxed build. Capture the context around filesystem and resource access failures so you can identify sandbox-permission crashes, which are distinct from logic bugs and are fixed by adjusting your package permissions or using the appropriate portal, not by changing your game code. Recognizing a crash as a permission denial rather than a code bug is the key insight, and the sandbox context is what reveals it.
Filesystem assumptions break in the sandbox
A common cause of sandbox crashes is filesystem assumptions. Your game might assume it can write to certain locations, read arbitrary paths, or access user files directly, all of which the sandbox restricts to specific permitted locations. A save system that writes to an unpermitted path, a config that reads from a restricted location, these crash in the sandbox while working natively.
Capture the file paths involved in access-failure crashes so you can see where your game is hitting the sandbox restrictions. The fix is usually to use the permitted sandbox locations for your data, the designated directories the sandbox grants access to, or to request the appropriate permission in your package manifest. Understanding that a filesystem crash in a Flatpak or Snap is almost always a sandbox-confinement issue, revealed by the path context, lets you fix it correctly by working with the sandbox rather than fighting it.
Setting it up with Bugnet
Bugnet captures Linux crashes through a signal handler, and you attach the package format, runtime version, and the context around filesystem and resource access failures as custom fields, so a crash from a Flatpak or Snap package carries the sandbox context that distinguishes a permission issue from a genuine bug. Reports flow into one dashboard where you can filter by package format.
Group crashes by format and runtime to see whether a crash is container-specific, and look at the access-failure context to identify sandbox-permission crashes. Because Flatpak and Snap introduce failures that never appear in native testing, this sandbox-aware capture is what lets you support these increasingly popular Linux package formats properly, seeing the container-specific crashes and fixing them by adjusting permissions or paths rather than chasing nonexistent bugs in your game code.
Test the packaged sandbox build
Because sandbox crashes only appear inside the container, you must test the actual packaged Flatpak or Snap build, not a native build, to catch them before players do. Running your game as the real sandboxed package surfaces the permission and filesystem issues that native testing cannot, and these are often the most common crashes for these formats, hitting on first launch when the game tries an operation the sandbox denies.
Test the sandboxed build with the same permissions players will have, not with relaxed development permissions, so you experience the real confinement. Pair that testing with your sandbox-aware crash capture for the issues that appear only under specific conditions or runtime versions. Together they ensure your Flatpak and Snap packages work within their sandboxes, which is the whole point of these formats: a containerized game that respects its sandbox is reliable and secure, and one that fights it crashes, so testing and capturing within the real sandbox is essential to shipping these formats well.
Flatpak and Snap trade dependency hell for a sandbox. Capture the format and permissions, or you cannot tell a denial from a bug.