Pausable tracks
Enable learners to pause tracks and resume later, preserving their progress and environment state while optimizing resource usage.
Requirements
Supported Resources
The track must use only virtual machines (no containers or website services)
Virtual Machines
✅ Yes
Fully supported - VMs suspend and resume
Containers
❌ No
Not supported - prevents pausability
Website Services
❌ No
Not supported - prevents pausability
Cloud Accounts
⚠️ Partial
Remain active while paused (incur costs)
How to use
Using the Instruqt UI or CLI, you can configure pausable tracks:
Per track: Enable pausing for the entire track
Per invite or landing page: Override the track setting when sharing content (This is only possible if the original track has pausing enabled and it meets the requirements above)
For the track:
Select the track you wish to make pausable
Navigate to the Settings page
In the Track Details section, locate "Users can pause track"
Toggle the switch to enable pausing
Set the Maximum pause duration (1-60 days, default is 7)
Click Save

For invites and landing pages:
See the Track invites and Landing pages documentation for configuring pausable tracks when sharing content.
Cloud Account Costs: Cloud accounts (AWS, Azure, GCP) remain active while paused and continue to incur costs. Plan accordingly and communicate this to learners.
Learner Experience
Pausing a Track
When learners are in a pausable track, they will see a "Pause and exit" button in the track interface.

Learner clicks "Pause and exit" button
The track enters the "pausing" state (this takes a few minutes)
Virtual machines are suspended
Progress and state are preserved
The learner is redirected to the splash screen
Resuming a Track
Access the track URL or navigate from an invite or landing page
Click the "Resume" button on the splash screen
The track enters the "resuming" state
Virtual machines are restored
Continue from the last accessed challenge

Automatic Pausing on Idle
For pausable tracks, the idle timeout system automatically pauses tracks instead of stopping them when learners become inactive:
Idle Detection: When a pausable track exceeds its idle timeout without activity
Automatic Pause: The system pauses the track rather than stopping it completely
Resource Optimization: VMs are suspended to save resources while preserving state
Resume on Return: Learners can resume from where they left off when they return
Required Settings for Automatic Idle Pausing:
Track must be pausable: Set
pausable: true
in track configurationPause TTL must be configured: Set
pausable_ttl
> 0 (e.g., 604800 for 7 days)Idle timeout must be set: Configure
idle_timeout
in track settings (in seconds)Track must use only VMs: No containers or website services
When all these conditions are met, the idle service will automatically pause the track instead of stopping it when the idle timeout is exceeded.
Pause Duration Reset Behavior
When you pause a track after resuming it, the pause duration timer resets to the full maximum configured value. This means:
Fresh timer on each pause: Every time you pause, you get the full pause duration allowance
Example: If the maximum pause duration is set to 7 days:
You pause for 3 days, then resume
When you pause again, you have another full 7 days available (not the remaining 4 days)
TTL limitation: While each pause resets the duration, you are still bound by the overall track Time-To-Live (TTL)
If you repeatedly pause and resume, the track will eventually expire based on its total TTL
Track States
Pausable tracks introduce additional states:
pausing
Track is being paused (VMs are suspending)
paused
Track is paused and can be resumed
resuming
Track is being resumed (VMs are restoring)
FAQs
Limitations
Technical Limitations
Container-based tracks cannot be paused
Website services prevent pausability
Embed mode does not support pause/resume
Maximum pause duration is 60 days
Troubleshooting
Common Issues
"Users can pause track" toggle is disabled
Check whether the track contains containers or website services
Remove non-VM resources to enable pausability
Pause button not appearing
Verify that the track is configured as pausable
Check that the user is not in embed mode
Resume fails or takes too long
Check whether the pause TTL has expired
Verify that VM resources are available
API Reference
For programmatic access to the pausable tracks functionality, see the Instruqt GraphQL API documentation.
Key operations include:
Query track pausability: Check if a track is pausable and its configuration
Pause play mutation: Pause a learner's track progress
Resume play mutation: Resume a paused track
Track status: Monitor track states including
pausing
,paused
, andresuming
Last updated
Was this helpful?