RocketChat/Rocket.Chat · error · Error
no-videoconf-provider-app
Error message
no-videoconf-provider-app
What it means
Thrown by VideoConferenceService.getValidatedProvider() before any call is started: videoConfProviders.hasAnyProvider() is false, meaning no app has registered a video conferencing provider on this workspace. Rocket.Chat does not implement video calls itself; URL generation and callbacks are delegated to an Apps-Engine app that registers a videoConfProvider (Jitsi, Pexip, Google Meet, etc.). With zero providers registered, call creation is refused up front with the availabilityErrors.NO_APP code ('no-videoconf-provider-app').
Source
Thrown at apps/meteor/server/services/video-conference/service.ts:589
if (!message) {
throw new Error('failed-to-create-message');
}
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,View on GitHub (pinned to e4b8178b20)
Solutions
- Install and enable a video conferencing provider app (Administration > Apps > Marketplace, e.g. Video Conferencing with Jitsi)
- Verify the provider appears and is enabled under Administration > Video Conferencing
- Check the app's logs (Administration > Apps > <app> > Logs) for provider registration failures and re-enable/reinstall if broken
- Retry the call start only after the app reports loaded and its provider registered
Example fix
// before
await videoConfService.startCall(uid, rid); // throws Error('no-videoconf-provider-app')
// after
if (!videoConfProviders.hasAnyProvider()) {
throw new Meteor.Error('no-videoconf-provider-app', 'Install a video conferencing provider app first');
}
await videoConfService.startCall(uid, rid); Defensive patterns
Strategy: validation
Validate before calling
import { videoConfProviders } from '.../lib/videoConference/server';
if (!videoConfProviders.hasAnyProvider()) {
throw new Meteor.Error('no-videoconf-provider-app', 'Install a video conferencing provider app first');
}
await videoConfService.startCall(uid, rid); Try / catch
catch (err) { if (err instanceof Error && err.message === 'no-videoconf-provider-app') { /* prompt admin to install a provider app */ } else throw err; } Prevention
- Install and enable a provider app before exposing call buttons to users
- Health-check videoConfProviders.hasAnyProvider() at startup and surface a warning in the admin UI
- In e2e tests, assert a provider is registered before any start-call fixtures run
When it happens
Trigger: Calling the start-call flow (REST video-conference start / VideoConferenceService.startCall via startDirect/startGroup) on a workspace where no video conferencing app is installed, the provider app is disabled, or the app loaded but its provider registration never ran.
Common situations: Fresh installation without a conferencing app from the Marketplace; admin disabled the Jitsi/conferencing app; local dev server with an empty Apps-Engine; app upgrade that stopped registering its provider.
Related errors
- no-active-video-conf-provider
- 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/e807e6e5b77a53d4.
Report an issue: GitHub.