qishibo/AnotherRedisDesktopManager · critical
Uncaught Exception: ${err}
Error message
Uncaught Exception: ${err} What it means
This is the app's global last-resort handler in src/main.js: process.on('uncaughtException') displays the stringified error as a 5-second toast and emits closeConnection. It is not an error source itself - the message body is whatever exception escaped, typically a bug in an unhandled promise or renderer code path, and the stack is not shown to the user.
Source
Thrown at src/main.js:38
Vue.use(ElementUI, { size: 'small' });
Vue.config.productionTip = false;
/* eslint-disable no-new */
const vue = new Vue({
el: '#app',
i18n,
components: { App },
template: '<App/>',
});
// handle uncaught exception
process.on('uncaughtException', (err, origin) => {
if (!err) {
return;
}
vue.$message.error({
message: `Uncaught Exception: ${err}`,
duration: 5000,
});
vue.$bus.$emit('closeConnection');
});
export default vue;
View on GitHub (pinned to c149855106)
Solutions
- Open DevTools for the renderer and reproduce the action to capture the real stack trace.
- Update to the latest app version - if the crash is a known bug it is often already fixed.
- Report the stack trace to the project issue tracker; the toast alone (no stack) is not enough to diagnose.
- Reconnect afterwards - the handler force-closes the current connection.
Defensive patterns
Strategy: try-catch
Try / catch
// give every async UI action an explicit catch so the global handler stays a last resort
client.call(cmd, ...args)
.then(handleReply)
.catch((e) => this.$message.error(`Cmd failed: ${e.message}`)); Prevention
- Attach .catch to every promise in UI code; the global handler exists for bugs, not for routine errors.
- Keep DevTools enabled so uncaught exceptions can be traced via the console stack.
- Report the stack, not the toast text - the toast stringifies the error without a trace.
When it happens
Trigger: Any uncaught exception in the renderer: property access on undefined inside a promise without .catch, JSON.parse of malformed data, buffer handling bugs on unusual key names, incompatibilities between app version and server response shapes.
Common situations: App bugs triggered by binary/emoji key names, corrupted or unexpected server replies, or version skew (new server features, old app code). Usually reproducible by repeating the same action.
AI-assisted analysis of qishibo/AnotherRedisDesktopManager@c149855106 (2026-08-22).
Data as JSON: /api/errors/3317eaee8e39746f.
Report an issue: GitHub.