Skip to content

Diagnostic

Diagnostic = BuiltInDiagnostic<"engine.track.failed", "error", TrackFailedData> | BuiltInDiagnostic<"engine.input.reopened", "info" | "warning", InputReopenedData> | BuiltInDiagnostic<"engine.input.retried", "warning", { attempt: number; offset: number; }> | BuiltInDiagnostic<"engine.track.starved", "warning", { durationMs: number; }> | BuiltInDiagnostic<"engine.track.gaps", "info", { gaps: number; silentMs: number; }> | BuiltInDiagnostic<"engine.worker.load", "debug" | "warning", { threadId: number; tracks: number; utilization: number; }> | BuiltInDiagnostic<"voice.endpoint.changed", "info", { endpoint: string; previous?: string; }> | BuiltInDiagnostic<"voice.join.retried", "info", { channelId: string; }> | BuiltInDiagnostic<"voice.recovered", "warning", VoiceRecoveryData> | BuiltInDiagnostic<"voice.recovery.failed", "error", VoiceRecoveryData> | BuiltInFields<CoreBackgroundStage, "error"> & object | PluginDiagnostic

A report. Without plugin, it is a core or built-in engine stage whose severity and data are typed by stage, so diagnostic.plugin === undefined && diagnostic.stage === "engine.track.failed" narrows data. With plugin, the named plugin chose the stage and its flat data.