# LibTmux::Workspace::X::Load::report_data

**Workspace Manager concept example** A working example of the core library. It can change without notice.

- **Module:** LibTmux::Workspace::X
- **Package:** LibTmux-Workspace
- **Language:** Perl
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-perl/blob/352715a4fa66a96eed7763b90daaa536aa2f121d/packages/workspace/lib/LibTmux/Workspace/X.pm#L44
- **Page:** https://libtmux.org/en/perl/latest/workspace/reference/libtmux-workspace-x-load-report_data/

```
sub report_data($self)
```

For Load exceptions, return a detached, JSON-safe report hashref. The primary cause and each cleanup error become records with `class`, `message`, known `path`, and `dispatched` (null means unknown). Core creation/load causes retain their cause chain; a repeated exception is marked `cycle`. Process results retain exit code, signal, raw wait status, and bounded stdout and stderr as `stdout_base64` and `stderr_base64` using [MIME::Base64](https://metacpan.org/pod/MIME::Base64). This diagnostic encoding does not serialize entity graphs or arbitrary exception internals. Other exceptions retain their class and string message. No I/O occurs; editing the export cannot change [`"report"`](/en/perl/latest/workspace/reference/libtmux-workspace-x-load-report/) or [`"cause"`](/en/perl/latest/workspace/reference/libtmux-workspace-x-load-cause/).

```perl
    use JSON::PP ();
    my $data = $error->report_data;
    say JSON::PP->new->canonical->encode($data);
```

The packaged `libtmux-workspace` CLI uses this export. Use [`"report"`](/en/perl/latest/workspace/reference/libtmux-workspace-x-load-report/) when recovery needs the original typed exceptions rather than diagnostic data.

## Methods

## Guides

Pages that discuss `report_data`.

- [Workspace guide](/en/perl/latest/workspace/source-guide/)
