This LTI® v1.3 Reference Implementation Test Tool is provided by IMS Global Learning Consortium. Limited functionality is provided free of charge. IMS Members have access to the complete functionality of the tool including services and message types. Join now to experience full functionality of the tool, technical support and certification. If you are an existing member login here for full access.
Launch Status

Valid

Launch was successfuly received by Reference Tool.

0 Errors below.

0 Warnings below.


JWT Decode + Authorization
Success

JWT was decoded correctly with the kid (Key ID) and public key provided by the Platform.

Missing Required Attributes
Following attributes are required but were not sent:

  • No Missing Attributes

Warnings
Following issues should be fixed:

  • No Issues to Fix.

Assignment and Grade Service
Names and Role Provisioning Service
Proctoring Services

Missing OAuth2 URL on Tool (required for acccess token) or this launch did not include Proctoring Services claims.

Pre-fetched OAuth2 Access Token:
{
  "status": 500,
  "error": "Internal Server Error",
  "exception": "#<ActiveRecord::PendingMigrationError:\"\\n\\nMigrations are pending. To resolve this issue, run:\\n\\n        bin/rails db:migrate\\n\\nYou have 2 pending migrations:\\n\\ndb/migrate/20260122100001_add_monitoring_window_id_to_legacy_reviews.rb\\ndb/migrate/20260129133746_remove_legacy_review_system.rb\\n\\n\\n\">",
  "traces": {
    "Application Trace": [
      {
        "exception_object_id": 9870220,
        "id": 26,
        "trace": "app/middleware/do_not_cache_public_files.rb:8:in `call'"
      }
    ],
    "Framework Trace": [
      {
        "exception_object_id": 9870220,
        "id": 0,
        "trace": "activerecord (8.0.2.1) lib/active_record/migration.rb:743:in `check_pending_migrations'"
      },
      {
        "exception_object_id": 9870220,
        "id": 1,
        "trace": "activerecord (8.0.2.1) lib/active_record/migration.rb:660:in `block (2 levels) in call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 2,
        "trace": "activesupport (8.0.2.1) lib/active_support/file_update_checker.rb:85:in `execute'"
      },
      {
        "exception_object_id": 9870220,
        "id": 3,
        "trace": "activerecord (8.0.2.1) lib/active_record/migration.rb:665:in `block in call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 4,
        "trace": "activerecord (8.0.2.1) lib/active_record/migration.rb:657:in `synchronize'"
      },
      {
        "exception_object_id": 9870220,
        "id": 5,
        "trace": "activerecord (8.0.2.1) lib/active_record/migration.rb:657:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 6,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 7,
        "trace": "activesupport (8.0.2.1) lib/active_support/callbacks.rb:100:in `run_callbacks'"
      },
      {
        "exception_object_id": 9870220,
        "id": 8,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/callbacks.rb:30:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 9,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/executor.rb:16:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 10,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 11,
        "trace": "sentry-rails (5.26.0) lib/sentry/rails/rescued_exception_interceptor.rb:11:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 12,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 13,
        "trace": "sentry-ruby (5.26.0) lib/sentry/rack/capture_exceptions.rb:15:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 14,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 15,
        "trace": "railties (8.0.2.1) lib/rails/rack/logger.rb:41:in `call_app'"
      },
      {
        "exception_object_id": 9870220,
        "id": 16,
        "trace": "railties (8.0.2.1) lib/rails/rack/logger.rb:29:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 17,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/remote_ip.rb:96:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 18,
        "trace": "rack-timeout (0.7.0) lib/rack/timeout/core.rb:116:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 19,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/request_id.rb:34:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 20,
        "trace": "rack (3.2.3) lib/rack/runtime.rb:24:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 21,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/server_timing.rb:61:in `block in call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 22,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/server_timing.rb:26:in `collect_events'"
      },
      {
        "exception_object_id": 9870220,
        "id": 23,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/server_timing.rb:60:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 24,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/executor.rb:16:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 25,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/static.rb:27:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 27,
        "trace": "rack (3.2.3) lib/rack/sendfile.rb:131:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 28,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/host_authorization.rb:143:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 29,
        "trace": "rack-cors (3.0.0) lib/rack/cors.rb:102:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 30,
        "trace": "vite_ruby (3.9.1) lib/vite_ruby/dev_server_proxy.rb:22:in `perform_request'"
      },
      {
        "exception_object_id": 9870220,
        "id": 31,
        "trace": "rack-proxy (0.7.7) lib/rack/proxy.rb:87:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 32,
        "trace": "railties (8.0.2.1) lib/rails/engine.rb:535:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 33,
        "trace": "puma (6.6.0) lib/puma/configuration.rb:279:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 34,
        "trace": "puma (6.6.0) lib/puma/request.rb:99:in `block in handle_request'"
      },
      {
        "exception_object_id": 9870220,
        "id": 35,
        "trace": "puma (6.6.0) lib/puma/thread_pool.rb:390:in `with_force_shutdown'"
      },
      {
        "exception_object_id": 9870220,
        "id": 36,
        "trace": "puma (6.6.0) lib/puma/request.rb:98:in `handle_request'"
      },
      {
        "exception_object_id": 9870220,
        "id": 37,
        "trace": "puma (6.6.0) lib/puma/server.rb:472:in `process_client'"
      },
      {
        "exception_object_id": 9870220,
        "id": 38,
        "trace": "puma (6.6.0) lib/puma/server.rb:254:in `block in run'"
      },
      {
        "exception_object_id": 9870220,
        "id": 39,
        "trace": "puma (6.6.0) lib/puma/thread_pool.rb:167:in `block in spawn_thread'"
      }
    ],
    "Full Trace": [
      {
        "exception_object_id": 9870220,
        "id": 0,
        "trace": "activerecord (8.0.2.1) lib/active_record/migration.rb:743:in `check_pending_migrations'"
      },
      {
        "exception_object_id": 9870220,
        "id": 1,
        "trace": "activerecord (8.0.2.1) lib/active_record/migration.rb:660:in `block (2 levels) in call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 2,
        "trace": "activesupport (8.0.2.1) lib/active_support/file_update_checker.rb:85:in `execute'"
      },
      {
        "exception_object_id": 9870220,
        "id": 3,
        "trace": "activerecord (8.0.2.1) lib/active_record/migration.rb:665:in `block in call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 4,
        "trace": "activerecord (8.0.2.1) lib/active_record/migration.rb:657:in `synchronize'"
      },
      {
        "exception_object_id": 9870220,
        "id": 5,
        "trace": "activerecord (8.0.2.1) lib/active_record/migration.rb:657:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 6,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 7,
        "trace": "activesupport (8.0.2.1) lib/active_support/callbacks.rb:100:in `run_callbacks'"
      },
      {
        "exception_object_id": 9870220,
        "id": 8,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/callbacks.rb:30:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 9,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/executor.rb:16:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 10,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 11,
        "trace": "sentry-rails (5.26.0) lib/sentry/rails/rescued_exception_interceptor.rb:11:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 12,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 13,
        "trace": "sentry-ruby (5.26.0) lib/sentry/rack/capture_exceptions.rb:15:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 14,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 15,
        "trace": "railties (8.0.2.1) lib/rails/rack/logger.rb:41:in `call_app'"
      },
      {
        "exception_object_id": 9870220,
        "id": 16,
        "trace": "railties (8.0.2.1) lib/rails/rack/logger.rb:29:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 17,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/remote_ip.rb:96:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 18,
        "trace": "rack-timeout (0.7.0) lib/rack/timeout/core.rb:116:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 19,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/request_id.rb:34:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 20,
        "trace": "rack (3.2.3) lib/rack/runtime.rb:24:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 21,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/server_timing.rb:61:in `block in call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 22,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/server_timing.rb:26:in `collect_events'"
      },
      {
        "exception_object_id": 9870220,
        "id": 23,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/server_timing.rb:60:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 24,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/executor.rb:16:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 25,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/static.rb:27:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 26,
        "trace": "app/middleware/do_not_cache_public_files.rb:8:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 27,
        "trace": "rack (3.2.3) lib/rack/sendfile.rb:131:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 28,
        "trace": "actionpack (8.0.2.1) lib/action_dispatch/middleware/host_authorization.rb:143:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 29,
        "trace": "rack-cors (3.0.0) lib/rack/cors.rb:102:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 30,
        "trace": "vite_ruby (3.9.1) lib/vite_ruby/dev_server_proxy.rb:22:in `perform_request'"
      },
      {
        "exception_object_id": 9870220,
        "id": 31,
        "trace": "rack-proxy (0.7.7) lib/rack/proxy.rb:87:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 32,
        "trace": "railties (8.0.2.1) lib/rails/engine.rb:535:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 33,
        "trace": "puma (6.6.0) lib/puma/configuration.rb:279:in `call'"
      },
      {
        "exception_object_id": 9870220,
        "id": 34,
        "trace": "puma (6.6.0) lib/puma/request.rb:99:in `block in handle_request'"
      },
      {
        "exception_object_id": 9870220,
        "id": 35,
        "trace": "puma (6.6.0) lib/puma/thread_pool.rb:390:in `with_force_shutdown'"
      },
      {
        "exception_object_id": 9870220,
        "id": 36,
        "trace": "puma (6.6.0) lib/puma/request.rb:98:in `handle_request'"
      },
      {
        "exception_object_id": 9870220,
        "id": 37,
        "trace": "puma (6.6.0) lib/puma/server.rb:472:in `process_client'"
      },
      {
        "exception_object_id": 9870220,
        "id": 38,
        "trace": "puma (6.6.0) lib/puma/server.rb:254:in `block in run'"
      },
      {
        "exception_object_id": 9870220,
        "id": 39,
        "trace": "puma (6.6.0) lib/puma/thread_pool.rb:167:in `block in spawn_thread'"
      }
    ]
  }
}
OIDC State
"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImtnSlZyMkRQX0ZyZmVMeTFRWFhtWEgzaXVZSkQ3ajlDdmtGbWFhNVJYQUkiLCJ0eXAiOiJKV1QifQ.eyJ0b29sX2lkIjo0ODk2LCJzdGF0ZV9ub25jZSI6IjYxZGViYzEwNTYwNmQzNDI5OTdmIiwicGFyYW1zIjp7ImNsaWVudF9pZCI6InBlLXRvb2wtdGVzdC0xIiwibG9naW5faGludCI6IjE3IiwibHRpX2RlcGxveW1lbnRfaWQiOiIxIiwibHRpX21lc3NhZ2VfaGludCI6IntcInJlc291cmNlX2xpbmtfaWRcIjpcInZpZGVvLWNsaXAtMVwifSIsInRhcmdldF9saW5rX3VyaSI6Imh0dHBzOi8vbHRpLXJpLmltc2dsb2JhbC5vcmcvbHRpL3Rvb2xzLzQ4OTYvbGF1bmNoZXMiLCJjb250cm9sbGVyIjoibHRpL2xvZ2luX2luaXRpYXRpb25zIiwiYWN0aW9uIjoiaW5kZXgiLCJ0b29sX2lkIjoiNDg5NiJ9LCJpc3MiOiJQRSBUZXN0IFRvb2wgMSIsInN1YiI6InBlLXRvb2wtdGVzdC0xIiwiYXVkIjoiaHR0cHM6Ly8yZWEwLTE0OS00MC0xMTctMTAwLm5ncm9rLWZyZWUuYXBwL2x0aS90b2tlbiIsImlhdCI6MTcxOTQ5MDcwMiwiZXhwIjoxNzE5NDkxMDAyLCJqdGkiOiI1ZDUwMzRkZDBiODY5ZmI0ZDU2NSJ9.NQ6pfAd5lb-MF3XNQd5nxr3QWFXknlgFVE3bQWbhi03gm7FyljnXVYKPb-zjh1muPLEljjs8mChqpAuK43LNIzTp1OtM8kQPlkYSYQLoyfsCfDFQb8ZtqWc3FL5uNQpW-Yy5prmIK5ZjvTwfq1VjNJJXhY_kwCTjJfGhIFosAPPtca_2hXYerXSyPBiZogCwCUquUiREKGdiOjsbGDDzyxe9dcOpp_0CHfisXIwl6-sOPyaoI_BzNTcvUBiLw2-c1BYyLcXy8Q5Ln4QNP7DanYf5OGPMwi5BIlIn6_3Eg2CXdAiHLgDRgYjlPgXM8Gn2jS810r0SlRuIVH2oq1IRag"
JWT Header
{
  "kid": "88be63634b4e21773731e25f5d45c64a078fdd8cc3467a3c6bc872235b5eb8d7",
  "typ": "JWT",
  "alg": "RS256"
}
Security Details
{
  "iss": "https://pe.test",
  "sub": "17",
  "aud": "pe-tool-test-1",
  "exp": 1719491308,
  "iat": 1719490708,
  "nonce": "YcnGMQNt7mUNf5etNleAYA"
}
Data not in Claims
{
}
Claims
{
  "https://purl.imsglobal.org/spec/lti/claim/message_type": "LtiResourceLinkRequest",
  "https://purl.imsglobal.org/spec/lti/claim/version": "1.3.0",
  "https://purl.imsglobal.org/spec/lti/claim/deployment_id": "1",
  "https://purl.imsglobal.org/spec/lti/claim/target_link_uri": "https://lti-ri.imsglobal.org/lti/tools/4896/launches",
  "https://purl.imsglobal.org/spec/lti/claim/resource_link": {
    "id": "video-clip-1"
  },
  "https://purl.imsglobal.org/spec/lti/claim/roles": [
    "http://purl.imsglobal.org/vocab/lis/v2/membership#Learner"
  ]
}