Incompatible plugins gracefully disabled
Why it matters
When a single failing or incompatible plugin crashes the entire host on startup, operators face a binary choice: disable all plugins or accept a broken application. Nine functioning plugins are blocked by the tenth's startup error. ISO 25010 reliability.availability requires that the system remain operational when individual components fail; graceful degradation is the mechanism that makes plugin system failures scope-contained. The absence of graceful degradation also makes plugin troubleshooting a binary-search exercise rather than a directed diagnosis.
Severity rationale
High because an incompatible plugin that crashes the host on startup takes down all other plugins and the entire application, making one broken plugin an availability incident affecting all users.
Remediation
Wrap each plugin's load and init sequence in an independent try/catch. Log the plugin name and failure reason, mark the plugin as disabled, and continue loading remaining plugins. Surface disabled plugins in an admin UI or startup log.
async function loadAllPlugins(manifests: PluginManifest[]): Promise<PluginLoadResult[]> {
const results: PluginLoadResult[] = [];
for (const manifest of manifests) {
try {
checkCompatibility(manifest);
await loadAndInit(manifest);
results.push({ name: manifest.name, status: 'loaded' });
} catch (error) {
this.logger.error(`Plugin "${manifest.name}" disabled: ${error.message}`);
results.push({ name: manifest.name, status: 'disabled', reason: error.message });
}
}
return results;
}
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Plugin / Extension Architecture Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- iso-25010:2011 · reliability.fault-tolerance — Fault tolerance — incompatible plugins must be disabled gracefully without crashing the host or affecting other plugins
- iso-25010:2011 · reliability.availability — Availability — graceful degradation preserves host uptime when individual plugins fail
Taxons
History
- 2026-04-18·v1.0.0·Initial import from plugin-extension-architecture·automated