Skip to main content

Tester Troubleshooting

This runbook is for testers who need to answer player questions about recorded hours and uploaded files.

Core questions

Testers should be able to answer:

  • Did this player record sessions?
  • How many validated recording hours does the player have?
  • Which sessions are uploadable, blocked, failed, or uploaded?
  • For each uploaded session, are MP4, CSV, and JSON present?
  • What are the S3 download URLs for each uploaded artifact?
  • If a session failed or was blocked, what is the specific reason?

Lookup key

The preferred human lookup key is steam_name. Tester dashboards can map from steam_name to Playroll user identity and then to sessions/uploads.

The stable technical identity should remain the user ID stored by the product. steam_name is useful for support, but it can change and should not be treated as the only identity.

Expected tester summary

For a given player, show:

FieldDescription
Steam nameHuman lookup key.
Playroll user IDStable product user identity.
Total sessionsCount of known recording sessions.
Uploadable sessionsSessions that passed validation.
Uploaded sessionsSessions with complete uploaded triplets.
Blocked sessionsSessions that failed local validation.
Failed sessionsSessions that did not finish normally.
Valid recorded hoursSum of validated session durations.
Uploaded hoursSum of sessions with complete uploaded artifacts.
Latest activityMost recent session or upload timestamp.

Session detail

Each session row should show:

FieldDescription
Session IDStable session identifier.
Started atRecording start timestamp.
Ended atTerminal timestamp.
DurationValidated duration when available.
Final statusuploadable, blocked, failed, or uploaded.
Failure reasonGranular reason when blocked or failed.
MP4Present/missing plus S3 URL if uploaded.
CSVPresent/missing plus S3 URL if uploaded.
JSONPresent/missing plus S3 URL if uploaded.

Known symptom: hotkeys dead + "no activity" stop on a healthy recording

If a player reports that the recording hotkey (F5) does nothing in-game and recordings started from the UI stop after ~30–45 s with an inactivity error while the video looks fine, the game (or its launcher) is almost certainly running as administrator: Windows UIPI blocks Playroll's hotkeys and input capture while the elevated game window is focused.

  • Since the EC-365 fix, core surfaces this as INPUT_BLOCKED_ELEVATED_GAME (instead of the generic INPUT_IDLE_TIMEOUT) and the session baseline event capture.v2.target_baseline carries target_proc_elevated (true / false / unknown_access_denied) plus core_elevated.
  • Remediation for the player: disable "Run as administrator" on the game and its launcher (Properties → Compatibility), restart the game. Running Playroll elevated also works but is not recommended as a default.
  • On older versions (≤ 4.1.11) the same condition shows up as INPUT_IDLE_TIMEOUT with near-zero total_events in input.recording_stop despite an in-game player — check target_proc_elevated is absent there and diagnose by asking about Run-as-administrator directly.

Escalation checklist

Escalate to engineering when:

  • A player has local successful sessions but no server records.
  • Uploaded artifact counts do not match the expected triplet.
  • Validated hours differ materially from MP4 duration.
  • A session has no terminal state.
  • Failure reason is generic and does not explain the issue.

Signals to collect before escalation

When a player reports that recording failed, uploaded hours look wrong, or a video looks bad, collect:

SignalWhy it matters
User-facing error codeStable code from core, for example WINDOW_NOT_16_9 or ENCODER_FAILURE_MIDSESSION.
Session final statusDistinguishes uploadable, blocked, failed, and uploaded.
Validation block reasonExplains why MP4/CSV/JSON did not become uploadable.
capture.v2.fps_profiler.eventShows whether core detected low FPS and the likely reason.
Upload eventsShows whether files reached S3 or failed before upload.
Window/settings eventsExplains stops caused by window loss, auto-pause, or settings policy.

The full signal catalog is maintained in Core Signals.