Foundry376/Mailspring · error
config json appears empty
Error message
config json appears empty
What it means
Startup validation in ConfigPersistenceManager.load: the user's config.json parsed to an empty/whitespace payload (e.g. truncated by a crash or power loss mid-write), so the config cannot be loaded. It drives the dialog offering Quit, Try Again, or Reset Configuration.
Source
Thrown at app/src/browser/config-persistence-manager.ts:90
detail,
buttons: [localized('Quit'), localized('Try Again'), localized('Reset Configuration')],
});
// On Windows, `cancelId` is ignored by Electron, so dismissing the dialog without
// clicking a button (eg: via the window's close button, Alt+F4, or Esc) can return
// an index outside 0-2. Treat that the same as "Quit" rather than throwing, since
// this runs synchronously during app startup and an uncaught error here prevents
// the app from launching at all.
return ['quit', 'tryagain', 'reset'][clickedIndex] || 'quit';
}
load() {
this.userWantsToPreserveErrors = false;
try {
const json = JSON.parse(fs.readFileSync(this.configFilePath).toString());
if (!json || !json['*']) {
throw new Error('config json appears empty');
}
this.settings = json['*'];
this.emitChangeEvent();
} catch (error) {
error.message = localized(`Failed to load config.json: %@`, error.message);
const action = this._showLoadErrorDialog(error);
if (action === 'quit') {
this.userWantsToPreserveErrors = true;
app.quit();
return;
}
if (action === 'tryagain') {
this.load();
return;
}
View on GitHub (pinned to 648c685d60)
Solutions
- Choose 'Try Again' if the file may have been momentarily locked (antivirus, sync agent)
- Choose 'Reset Configuration' to regenerate a fresh config and re-onboard accounts
- Write config atomically (temp file + rename) to prevent truncation in the first place
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at app/src/browser/config-persistence-manager.ts:90 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Foundry376/Mailspring@648c685d60 (2026-09-03).
Data as JSON: /api/errors/c4588df52bcb4528.
Report an issue: GitHub.