qishibo/AnotherRedisDesktopManager · error
err
Error message
err
What it means
Element UI toast that forwards the Node fs error from writing the temporary hex file. When the edited value's hex length exceeds writeHexFileSize, ViewerCustom writes the hex string to a temp file (path from ipcRenderer 'getTempPath', named ardm_cv_<keyhex>) and substitutes {HEX_FILE} in the external command. fs.writeFile's callback receives a non-null err (front-of-callback Node convention) when the temp directory is unwritable, missing, or the path is invalid — the toast shows that err object/message and the command never executes.
Source
Thrown at src/components/viewers/ViewerCustom.vue:109
);
// in case of long content in template
this.previewCommand = command.replace(
'{VALUE}',
this.$util.cutString(this.content.toString(), this.previewContentMax),
);
// if content is too long, write to file simultaneously
// hex str is about 2 times of real size
if (hexStr.length > this.writeHexFileSize) {
ipcRenderer.invoke('getTempPath').then((reply) => {
// target file name
const fileName = `ardm_cv_${this.redisKey.toString('hex')}`;
const filePath = require('path').join(reply, fileName);
require('fs').writeFile(filePath, hexStr, (err) => {
if (err) {
return this.$message.error(err);
}
this.fullCommand = this.fullCommand
.replace('{HEX_FILE}', filePath)
.replace('{HEX}', '<Content Too Long, Use {HEX_FILE} Instead!>');
this.previewCommand = this.previewCommand
.replace('{HEX_FILE}', filePath)
.replace('{HEX}', '<Content Too Long, Use {HEX_FILE} Instead!>');
this.exec();
});
});
}
// common content just exec
else {
this.fullCommand = this.fullCommand
.replace('{HEX}', hexStr)
.replace('{HEX_FILE}', '<Use {HEX} Instead!>');View on GitHub (pinned to c149855106)
Solutions
- Check the message text — EACCES means fix permissions on the temp dir, ENOENT means recreate TMPDIR, ENOSPC means free disk space
- Set TMPDIR to a writable location and restart the app
- Clear old ardm_cv_* files from the temp directory
- If it persists, raise writeHexFileSize so small-ish values stay inline via {HEX} instead of the temp-file path
Example fix
// before
require('fs').writeFile(filePath, hexStr, (err) => {
if (err) {
return this.$message.error(err);
}
...
});
// after - actionable message incl. path
require('fs').writeFile(filePath, hexStr, (err) => {
if (err) {
return this.$message.error(`Cannot write ${filePath}: ${err.message}`);
}
...
}); Defensive patterns
Strategy: try-catch
Validate before calling
// preflight: temp dir writable before launching the flow
const fs = require('fs');
const os = require('os');
fs.accessSync(os.tmpdir(), fs.constants.W_OK); Try / catch
require('fs').writeFile(filePath, hexStr, (err) => {\n if (err) {\n // actionable message including the failing path\n this.$message.error(`Cannot write ${filePath}: ${err.message}`);\n return;\n }\n this.exec();\n}); Prevention
- Ensure TMPDIR exists and is writable; restart the app after changing it
- Periodically clean accumulated ardm_cv_* temp files
- Raise the writeHexFileSize threshold so moderate values stay inline
When it happens
Trigger: Editing a very large value in the custom viewer (hex string over the configured threshold) while the OS temp dir is not writable: TMPDIR pointing to a deleted directory, disk full, permissions changed, or antivirus locking temp writes on Windows; the getTempPath reply containing a path that does not exist in the renderer's context.
Common situations: CI/containers where /tmp is read-only or TMPDIR is stale; macOS with low disk space; running as a user without write access to the resolved temp path; leftover ardm_cv_* files accumulating until quota is hit.
Related errors
AI-assisted analysis of qishibo/AnotherRedisDesktopManager@c149855106 (2026-08-22).
Data as JSON: /api/errors/c5f756b955528aea.
Report an issue: GitHub.