Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.exec.com/llms.txt

Use this file to discover all available pages before exploring further.

When something goes wrong with an LTI launch, Exec shows a branded error page with a short message and a reference ID (correlation ID) — share that ID with support and we can find the launch in our logs. This page covers the most common errors, what causes them, and how to fix them.

The error page

If a launch fails, the learner lands on a page that looks like this:
We couldn’t launch this activity <message describing what went wrong> If this keeps happening, contact support and share this reference: abc123def456
The reference ID is short, monospace, and in a grey box. It’s unique per failure. Email it to us and we’ll trace the launch end-to-end.

Errors during the launch handshake

These appear when the learner clicks the LMS activity but Exec rejects the launch before it ever opens the scenario.

”Launch validation failed”

The LMS sent a launch token Exec couldn’t verify. Common causes:
  • Wrong public keyset URL on Exec’s side. Open Workspace settings → Integrations → LTI 1.3 and check that the Public keyset URL in Manual LMS connection matches your LMS’s actual JWKS endpoint.
  • The LMS rotated its keys. Re-saving the manual configuration (no field changes needed) refreshes Exec’s view of the platform; in extreme cases you may need to re-create the connection.
  • Clock skew between the LMS server and Exec — by spec we allow a few seconds of slack, but a server with a badly wrong clock will fail every launch.

”Unknown LTI configuration”

The launch carried an issuer + client ID pair that doesn’t match anything saved in this Exec workspace.
  • Check the Connected LMSes table on the LTI settings page. Is there a row whose Issuer matches the LMS the learner launched from, with the right Client ID?
  • If you re-registered the tool inside the LMS, the LMS may have issued a new client ID. Reconnect Exec from the LMS (or via the manual form) so the new ID is on file.
The LMS sent the learner to Exec’s /lti/login endpoint without telling us where to go next. Almost always means the External tool in the LMS is missing its Tool URL / Target Link URI. Set it to Exec’s Launch (redirect URI) value (copy it from Endpoint URLs on the LTI settings page).

”Scenario not found for workspace”

The launch ran, but the LTI activity’s scenario_id custom parameter doesn’t match any scenario in the workspace this LMS is connected to.
  • Confirm the slug or numeric ID is correct (open the scenario in Exec — the slug is in the URL).
  • Confirm the scenario lives in the same workspace that’s connected to this LMS. LTI scenario lookups are scoped to the connected workspace; a scenario in a different workspace won’t be found.
  • Check the activity’s Custom parameters — the format is scenario_id=your-slug on its own line. No quotes, no extra whitespace, lowercase key.
The handoff link Exec generated after the LMS launch (/lti/complete/...) is single-use and lives for 30 minutes. It expires if:
  • The learner waited more than 30 minutes between clicking the LMS activity and finishing sign-in.
  • The same link was clicked twice (the second click sees an expired link).
  • The learner already used this link in another tab.
Fix: re-click the activity in the LMS to get a fresh handoff link.

Mismatched user errors

“You’re signed in to Exec as a different user than this LMS launch was issued for. Sign out (or open an incognito window) and try the launch again.”
This appears when the learner is already signed in to Exec in the same browser as a different account than the one the LMS launch was for. Exec refuses to open the scenario as the wrong user — that would attribute the score to the wrong person. Fix: sign out of Exec, then click the LMS activity again. Or open the LMS in an incognito / private window. This usually shows up for admins who use multiple Exec accounts on the same machine; learners with one account see it rarely.

Grade passback issues

If a learner finished a roleplay but the score didn’t show up in the LMS gradebook:

The activity isn’t graded in the LMS

Open the activity settings in your LMS and confirm:
  • The activity is set to graded / has a points value.
  • Grade sync (sometimes labelled “Accept grades from the tool”) is enabled.
  • The LMS’s gradebook column for this activity exists.
If the activity isn’t graded, Exec has nowhere to send the score and silently skips passback.

The AGS score scope wasn’t granted

When the tool was registered, the LMS may have withheld the AGS score scope. Open the External tool’s services / scopes in your LMS and enable grade sync (or the equivalent toggle). Re-launching from a course where the scope is granted will start populating scores.

The new score isn’t an improvement

Exec only sends scores that beat the previous best (best-of-N). A retake at 70% won’t update the gradebook if the previous best was 80%. This is intentional — see Grade passback / Best-of-N.

The lineitem URL changed

Some LMSes regenerate gradebook columns when an activity is edited. If the lineitem URL changed mid-course, scores from launches that happened before the edit will go to the old (now-orphaned) column. Have learners click the activity again to get a fresh launch with the new lineitem URL.

Diagnosing with the reference ID

Every failure logs a reference ID. When contacting support:
  1. Copy the reference ID from the error page.
  2. Email [email protected] with:
    • The reference ID.
    • The LMS product name and version.
    • Roughly when the failure happened (within an hour is enough).
    • Whether this is the first launch for this LMS or a connection that was working before.
We trace launches by reference ID, so providing it shortcuts most diagnosis.

Re-registering when in doubt

If a connection was working and abruptly broke after an LMS upgrade or tool re-import:
  1. Generate a fresh registration URL (dynamic) or re-save the manual configuration with current values.
  2. Re-launch from a course.
  3. If the launch still fails, contact support with the reference ID.
Don’t delete the old configuration row from Connected LMSes until the new one launches successfully — past launches stay associated with the configuration that issued them, and removing it can orphan grade passbacks.

Getting Help

Stuck on a failure not covered here? Contact us at [email protected] with the reference ID from the error page.