flarum/framework · warning
One or more extensions have changed, but ignoring due to…
Error message
One or more extensions have changed, but ignoring due to flag --ignore-extension-toggles.
What it means
ServeCommand watches the enabled-extension state while serving; if extensions were enabled/disabled mid-serve but --ignore-extension-toggles was passed, it warns that changes are detected yet ignored, updates its cached state, and keeps the loop running without restart.
Solutions
- Remove --ignore-extension-toggles so the server restarts and picks up extension changes
- Restart the serve command manually after the extension changes if needed
- Ensure extension state is stable before starting a long-serving process
Example fix
// before php flarum serve --ignore-extension-toggles // after php flarum serve # restarts on extension toggles
Defensive patterns
Strategy: fallback
Validate before calling
# keep extension state stable before serving php flarum info | grep -i extension
Prevention
- Avoid --ignore-extension-toggles in production; restart instead
- Freeze extension changes during serve sessions
- Log extension toggle events to correlate with the warning
When it happens
Trigger: Running the websocket serve command with --ignore-extension-toggles while something (admin panel, flarum CLI) enables or disables an extension during the process lifetime.
Common situations: Deploy tooling toggling extensions while a dev websocket server runs; operators deliberately suppressing restarts to avoid interrupting active connections.
Understand the failure class
Background: "unknown output mode", "invalid value for flag", "expects true/false": fixing invalid flag value errors in CLI tools — this error's family across 24 libraries.
Related errors
- One or more extensions have changed, killing to restart.
- Paths are not possible in websocket connections.
- Invalid auth signature provided.
- $errno, $errstr, $errfile:$errline
- [$errno] $errstr in $errfile:$errline
AI-assisted analysis of flarum/framework@4b939f6853 (2026-09-15).
Data as JSON: /api/errors/3a68e481f9b382af.
Report an issue: GitHub.
Appendix: source
Thrown at extensions/realtime/src/Websocket/Console/ServeCommand.php:219
$newState = $app->make(SettingsRepositoryInterface::class)->get('extensions_enabled');
} else {
/** @var ConnectionInterface $connection */
$connection = $app->make(ConnectionInterface::class);
$newState = $connection->table('settings')
->where('key', 'extensions_enabled')
->value('value');
}
if ($enabled === null || $newState === $enabled) {
$enabled = $newState;
return;
}
if ($this->option('ignore-extension-toggles')) {
$enabled = $newState;
$this->warn('One or more extensions have changed, but ignoring due to flag --ignore-extension-toggles.');
return;
}
$this->warn('One or more extensions have changed, killing to restart.');
$loop->stop();
});
}
}
View on GitHub (pinned to 4b939f6853)