Overview
The Logs page gives you a live and historical view of everything that happens while your content is played – sandboxes being provisioned, setup scripts, user activity, tasks passing or failing, warnings, and errors. It’s the fastest way to understand why a session behaved the way it did, unblock someone while they’re still playing, or fix a problem in your content, all without touching the CLI.
Opening the Logs page
Section titled “Opening the Logs page”Open the Logs page from the main navigation.
The page is context-aware: if you open it from a specific piece of content or a share, it pre-applies matching filters so you land on the relevant events straight away. Any pre-applied filters are shown in the filter bar, so it’s always clear what you’re looking at, and you can clear or change them at any time.
The page at a glance
Section titled “The page at a glance”The Logs page has three main areas, plus a streaming control:
- Filter bar – search and narrow down which events you see: two search boxes (message/event and sandbox/session) plus Severity, date range, Labs, Tracks, and Share filters.
- Stream button – in the top right, toggles live streaming on and off (see Live streaming).
- Timeline – a chart showing when events happened and how they’re distributed over time.
- Log stream – the list of individual events matching your filters.
The default view
Section titled “The default view”When you open Logs, the page loads immediately with a focused starting point, so you’re not overwhelmed and nothing is slow to load:
- Time range: the last 15 minutes
- Severity: errors and warnings only (shown as a 2 on the Severity filter)
- Labs / Tracks: all content
- Streaming: on
This surfaces the highest-priority events first. From there you can widen the time range, add more severity levels, or filter down to specific content or a session.
Reading the log stream
Section titled “Reading the log stream”The log stream is a feed of individual events, ordered oldest first. Each row gives you the essentials at a glance:
| Column | What it shows |
|---|---|
| Severity | A coloured indicator and label (Error, Warning, Info, Debug). |
| Time | When the event happened. |
| Session id | Identifies the session the event belongs to. |
| Message | A plain-language description of what happened and who or what triggered it (for example, “Handler returned error” or “User failed task”). |
Expanding an event
Section titled “Expanding an event”Click the arrow at the start of any row to expand it and see the full detail behind the event:
- Content name the event came from (and the branch, for labs).
- Access type – how the user reached the content (see Access types).
- Event details – the complete set of information recorded for that event, shown as structured, collapsible data. Nested sections can be expanded or collapsed so you can drill into exactly what you need.
Because every piece of content records its own kinds of events, the detail shown adapts to whatever that event contains – nothing is hidden or trimmed away.
Access types
Section titled “Access types”The access type tells you how the user got into the content:
| Access type | How it appears |
|---|---|
| Invite link | Invite · [share name] |
| Landing page | Landing Page · [share name] |
| Embedded on an external page | Embed |
| LMS / LTI | Embed |
| You playing from the dashboard | Creator Session |
Severity levels
Section titled “Severity levels”Severity tells you how important an event is. It controls what shows by default and how the event looks in the list.
| Level | What it means | Shown by default? |
|---|---|---|
| Error | Something went wrong and affected the experience. Needs attention. | Yes |
| Warning | Something was outside the expected behaviour, but the session kept going. | Yes |
| Info | Normal events – content started, completed, a task passed or failed. | No – turn on to see |
| Debug | A detailed trail of everything that happened, recorded for diagnostics. | No – turn on to see |
Searching and filtering
Section titled “Searching and filtering”Use the filter bar to narrow the stream and find relevant events faster. Filters are additive – each one you add narrows the results further – and they stay applied as you work. A Clear all filters control appears whenever any filter is active.
Two search boxes:
- Search message or event – full-text search across event messages.
- Sandbox or session ID – find all events for a specific sandbox or session.
Filters:
| Filter | What it does |
|---|---|
| Severity | Choose any combination of Error, Warning, Info, Debug. Errors and warnings are on by default; a badge shows how many levels are selected. |
| Date range | Presets for the last 15 minutes, 1 hour, 6 hours, 24 hours, or 7 days, plus Custom… for an exact range (up to 30 days) and a Time zone setting (for example, GMT+2). |
| Labs | Search and select one or more labs. Each entry shows the lab name with its slug underneath. Use the arrow on an entry to pick a specific branch (e.g. main). |
| Tracks | Search and select one or more tracks. Each entry shows the track name with its slug underneath. |
| Share | Open Invites or Landing Pages and pick individual items. Selecting a category no longer selects everything under it – choose exactly the shares you want. |
The Timeline
Section titled “The Timeline”The chart between the filter bar and the stream shows the distribution of events over your selected time range. It’s an at-a-glance way to spot when activity peaked or where errors are concentrated, without scrolling through every event.
- Bars are stacked by severity, each with its own colour: Error (red), Warning (amber), Info (blue), Debug (grey). Exact shades may vary slightly depending on your UI colour mode (light, dark, or system).
- Only the severities currently shown in your filters appear in the bars.
- Hover a bar for a breakdown of counts by severity for that slice of time (for example, “2 errors · 1 warning · 4 info”).
- The Timeline reflects your active filters – if you’re viewing errors only, only errors appear in the bars.
- The width of each bar (the time bucket) adjusts automatically to keep the chart readable across the selected time range.
The bucket width scales with the selected date range:
| Date range | Bucket width |
|---|---|
| Up to 1 hour | 1 minute |
| Up to 24 hours | 30 minutes |
| Up to 7 days | 6 hours |
| Longer (up to the 30-day maximum) | 1 day |
Live streaming
Section titled “Live streaming”Use the Stream button in the top right to toggle live streaming. When it’s on, new events appear in the stream in real time as they’re generated – ideal for watching a live session unfold. Streaming is separate from the date range: turn it on to follow events as they happen, or pick a time range to look back over history.
- Streaming is on by default when the page loads.
- Pause / resume the stream at any time (button, or the
Pkey) so you can read without the list moving. - If events exist outside your current time range, a banner lets you reveal them (this widens the time range to include them).
- Up to 5,000 events are kept in memory while streaming. Once that cap is reached, the oldest entries drop off and a banner tells you so.
Customising columns
Section titled “Customising columns”You can choose which fields appear as columns in the stream to surface the data that matters most for your content or the issue you’re chasing.
- The + control at the top right of the table header opens a list of all fields found across the events in your current view.
- Select a field to add it as a column; deselect to remove it.
- You can also remove a column by hovering its name in the table header and clicking the remove control.
- The available fields update as your filtered view changes and new fields become available.
- The default columns – Severity, Time, Session id, Message – are always present and can’t be removed.
Your column selection is saved in the page URL, so it persists on reload and can be shared with a teammate via a link.
Alongside the four default columns, the following optional columns are available:
| Column | What it shows |
|---|---|
| Sandbox ID | The track sandbox ID. Populated for track logs. |
| Content | The ID of the lab or track the entry belongs to. |
| Type | The content type: lab or track. |
| Slug | The slug of the lab or track. |
| Ref | The lab’s branch or tag name. Empty for track entries. |
| Ref type | Whether the ref is a branch or a tag. Empty for track entries. |
| Access type | How the content was accessed: invite, landing page, embed, or creator session. Matches the groups in the Share filter. |
| Share name | The name of the invite or landing page used, when applicable. |
The picker also lists a Payload group, with one column per field found in the raw log payload of your current results (for example, fields a lab or track script logged). These columns only appear for entries that actually carry that field.
Keyboard shortcuts
Section titled “Keyboard shortcuts”For quick navigation without leaving the keyboard, the Logs page supports shortcuts. Select the ? button in the top right of the page to open the full reference at any time.
| Key | Action |
|---|---|
J / ↓ | Select the next row |
K / ↑ | Select the previous row |
Enter / Space | Expand or collapse the selected row |
Escape | Collapse an expanded row, or clear the search box if it’s focused |
/ | Focus the search bar |
P | Pause or resume the live stream |
C | Copy a permalink to the selected row |
? | Open the keyboard shortcuts reference |
Loading, empty, and error states
Section titled “Loading, empty, and error states”While logs load, the page shows a loading state.
If there are no events to show, you’ll see a No events to show for selected filters message. This usually means one of two things: the content hasn’t been played yet, or your current filters don’t match any events. Use Reset filters to return to the default view (recent errors and warnings).
If something goes wrong fetching logs, you’ll see Could not load logs with a Retry button. Select Retry to try the request again.
Summary
Section titled “Summary”The Logs page gives you a single place to observe and troubleshoot your sessions:
- A live and historical feed of events, with new activity streaming in as it happens
- Severity levels that separate signal (errors, warnings) from detail (info, debug)
- Search, Labs / Tracks / Share filters, and a visual Timeline to find events fast
- Expandable rows and customisable columns to see exactly the detail you need
- Keyboard shortcuts for quick, hands-on-keyboard navigation
