RocketChat/Rocket.Chat · error · Error
no-active-video-conf-provider
Error message
no-active-video-conf-provider
What it means
Thrown by getValidatedProvider() when at least one provider app exists but videoConfProviders.getActiveProvider() returns falsy: no provider has been selected as the workspace's active provider. Multiple provider apps can coexist, but exactly one must be set active; the active selection is what startCall uses. The same availabilityErrors.NOT_ACTIVE code ('no-active-video-conf-provider') is also thrown on the join/start REST path in apps/meteor/server/api/v1/videoConference.ts:154.
Source
Thrown at apps/meteor/server/services/video-conference/service.ts:594
return message._id;
}
private async validateProvider(providerName: string): Promise<void> {
const manager = await this.getProviderManager();
const configured = await manager.isFullyConfigured(providerName).catch(() => false);
if (!configured) {
throw new Error(availabilityErrors.NOT_CONFIGURED);
}
}
private async getValidatedProvider(): Promise<string> {
if (!videoConfProviders.hasAnyProvider()) {
throw new Error(availabilityErrors.NO_APP);
}
const providerName = videoConfProviders.getActiveProvider();
if (!providerName) {
throw new Error(availabilityErrors.NOT_ACTIVE);
}
await this.validateProvider(providerName);
return providerName;
}
private async createEphemeralMessage(uid: string, rid: string, i18nKey: string): Promise<void> {
const user = await Users.findOneById<Pick<IUser, 'language' | 'roles'>>(uid, { projection: { language: 1, roles: 1 } });
const language = user?.language || settings.get<string>('Language') || 'en';
const key = user?.roles.includes('admin') ? `admin-${i18nKey}` : i18nKey;
const msg = i18n.t(key, {
lng: language,
});
void api.broadcast('notify.ephemeralMessage', uid, rid, {
msg,
});View on GitHub (pinned to e4b8178b20)
Solutions
- Open Administration > Video Conferencing and select/enable one provider as the active provider
- Confirm the provider app backing that selection is still installed and enabled (uninstalling it clears the active choice)
- If the admin UI shows no selectable provider, fix the underlying NO_APP condition first (install a provider app)
- Retry the call start after saving the active provider
Example fix
// before
await videoConfService.startCall(uid, rid); // throws Error('no-active-video-conf-provider')
// after
const active = videoConfProviders.getActiveProvider();
if (!active) {
throw new Meteor.Error('no-active-video-conf-provider', 'Select an active provider in Administration > Video Conferencing');
}
await videoConfService.startCall(uid, rid); Defensive patterns
Strategy: validation
Validate before calling
const active = videoConfProviders.getActiveProvider();
if (!active) {
throw new Meteor.Error('no-active-video-conf-provider', 'Select the active provider in Administration > Video Conferencing');
}
await videoConfService.startCall(uid, rid); Try / catch
catch (err) { if (err instanceof Error && err.message === 'no-active-video-conf-provider') { /* surface admin action: choose active provider */ } else throw err; } Prevention
- After installing a provider app, immediately set it active in the admin UI
- When swapping provider apps, enable the new one before deactivating the old one to avoid a no-active window
- Monitor the active-provider setting during workspace migrations
When it happens
Trigger: Starting (or joining) a video conference via REST/streamer when provider apps are installed but the active provider was never chosen, was deactivated in Administration > Video Conferencing, or the setting storing the active provider was reset during migration.
Common situations: Installed a second provider app and the active selection got cleared; workspace migrated/cloned without the video conf admin settings; admin deactivated the old provider before enabling the new one, leaving a window with no active provider.
Related errors
- no-videoconf-provider-app
- video-conf-provider-unavailable
- video-conf-provider-not-configured
- error-unregistering-provider
- A video conference must exist to update.
AI-assisted analysis of RocketChat/Rocket.Chat@e4b8178b20 (2026-08-18).
Data as JSON: /api/errors/cef6b69b047b6809.
Report an issue: GitHub.