Skip to main content

Testing Phase

After an admin approves an extension version for testing, that version enters the testing status. You can invite up to 5 testers (Free plan) or 20 testers (Pro plan) to provide feedback. Each invited tester can install exactly that testing version into a channel they manage, as a pinned test install. The regular store install still selects the extension's newest published version. For a published private extension, a tester invitation also grants installation access to that published version.

How testing works​

  1. Admin approves the extension → status changes to testing
  2. You invite testers by Lumio username
  3. Each tester installs the testing version they were invited to (see Installing the testing version) and tries it in their channel
  4. When testing is done, you request publication; an admin does the final check and publishes the version
  5. When you remove a tester, or the version leaves testing (publication requested, or the version abandoned), their test install is removed

Inviting testers​

In the extension dashboard under Versions → {version} → Testing:

  1. Click Add tester
  2. Enter the tester's Lumio username
  3. Click Invite

The tester receives a notification. A store link can lead to a published extension, but a store install never selects the version in testing; testers install it as described below:

https://lumio.vision/dashboard/store/k8f2x-sports-scoreboard

Installing the testing version​

A tester sees their invitations in the dashboard under Store > Installed > Test invitations and installs the testing version there with Install test version (see the user guide). Over the API it is GraphQL myExtensionTestInvitations / installExtensionTestVersion(versionId), or REST GET /v1/me/extension-test-invitations / POST /v1/extension-installs/test-version with { "version_id": "…" }.

The install goes into the tester's active channel and needs all of the following:

  • the tester signed in interactively (an API key, a service or developer key, a popout/overlay/widget/extension token or an AI app over MCP cannot do it)
  • the tester's role in that channel grants extension-store:install, and the channel's plan includes feature:extensions
  • a tester invitation for exactly this version and this user
  • the version is still in testing and the extension is not suspended

If any of these is missing, the answer is Extension version not found. It does not say which condition failed.

A test install is different from a store install:

  • Pinned. It runs exactly the invited version, with auto-update off. It never moves to a newer testing or published version, and auto-update or "pin version" cannot be switched on it. To test a newer version, the tester uninstalls and installs the new one.
  • One install per extension. If the channel already has the extension installed (for example the published version), the answer is Extension is already installed; a test install never replaces it.
  • Paid extensions. The channel's plan still needs feature:extension_paid, but the tester pays nothing and no purchase is created. A test install does not count towards the extension's install count.
  • Audit. It is recorded as extension:test_version_installed in the channel's audit log.

When a test install is removed​

The test install is removed through the normal uninstall, so the channel keeps its extension data for 30 days, as after any uninstall. This happens when:

  • you remove the tester from the version
  • you request publication of the version (it leaves testing; after it is published, the tester installs the published version from the store and within 30 days gets the saved configuration back)
  • you abandon the version
  • you delete the extension while it has no published version
  • the tester's Lumio account is deleted

Each removal is recorded as extension:test_install_revoked with its reason (tester_removed, version_left_testing, version_abandoned, extension_deleted, grant_lapsed) in the channel's audit log. Removing a tester, requesting publication and abandoning remove the test installs right away. In any other case a version that left testing stops running at once, and its install is removed within 15 minutes. An uninstall of your extension in another channel does not remove a tester's invitation.

Tester limits​

PlanMax testers per version
Free5
Pro20

Tester feedback​

Lumio has no feedback form for testers yet: collect their reports through your own channels. The tester list (GraphQL developerExtensionTesters, REST GET /v1/developer/extensions/{id}/versions/{vid}/testers) has a feedback field per tester, which nothing fills today.

Requesting publication​

When testing is done, click Request Publish on the version's testing page. Over the API it is GraphQL requestExtensionPublish(versionId) or REST POST /v1/developer/extensions/{id}/versions/{vid}/request-publish.

  • The version moves from testing to pending_publish and appears in the admin review queue for the final check. The admin publishes it (published) or rejects it with review notes (rejected).
  • The version's test installs are removed at once: a test install is valid only while its version is testing. The testers stay on the version's tester list.
  • You need extension-dev:publish in your active channel and, for a team extension, a team role with Publish. Like submitting for review, it requires an interactive sign-in (no API key, developer key or popout token) and a stored manifest that still validates.
  • Only a testing version can be moved. Any other status answers Version not found or not in testing status.
  • You get the same notification as after submitting for review, and the action is recorded as developer:extension_publish_requested in your personal audit log.

Abandoning a testing version​

If a testing version should never be published, abandon it with GraphQL abandonExtensionVersion(versionId) or REST POST /v1/developer/extensions/{id}/versions/{vid}/abandon.

  • Allowed while the version is testing or pending_publish (a version awaiting the final check is still a test version). Any other status answers Version not found or not in testing or pending_publish status.
  • The version moves to abandoned. There is no way back: an abandoned version can never be installed, listed in the store, approved or published. If an admin is reviewing it at the same moment, whichever action comes first wins.
  • Its test installs are removed at once (normal uninstall, the channels keep their extension data for 30 days).
  • The testers stay on the version's tester list.
  • The version's bundle and source stay stored, as for a rejected version.
  • You can deploy a newer version and submit it for review as usual.
  • The same permissions as for requesting publication apply. The action is recorded as developer:extension_version_abandoned (with the status it was abandoned from) in your personal audit log.

Replacing a testing version​

If you discover a significant bug during testing, you can deploy a new version and submit it for review. The current testing version stays in testing, and its testers keep their test installs, until you remove the testers, request its publication or abandon it.

CLI: checking testing status​

lumio status shows the newest version and its status, for example testing, pending_publish or abandoned:

lumio status
# Extension: Sports Scoreboard
# Version: 1.2.0
# Status: testing
# Uploaded: 2026-11-07T16:02:11Z