qishibo/AnotherRedisDesktopManager · warning
Size too large, show only the first ${this.firstChars} chara
Error message
Size too large, show only the first ${this.firstChars} characters and you cannot edit it. What it means
Alert title of ViewerOverSize, the fallback viewer that FormatViewer renders when Buffer.byteLength(content) exceeds its over-size threshold (FormatViewer.vue:118). Instead of loading a multi-megabyte value into the normal editor (which freezes the UI), the app slices the content to the first 20000 characters (contentDisplay) and shows this read-only notice. It is a deliberate degradation path, not an exception.
Source
Thrown at src/components/viewers/ViewerOverSize.vue:26
<el-input :disabled='true' type='textarea' :value='contentDisplay'></el-input>
</div>
</template>
<script type="text/javascript">
export default {
data() {
return {
firstChars: 20000,
};
},
props: ['content', 'contentVisible', 'disabled'],
computed: {
contentDisplay() {
return `${this.$util.bufToString(this.content.slice(0, this.firstChars), false)
}...Show only the first ${this.firstChars} characters, the rest has been hidden...`;
},
alertTitle() {
return `Size too large, show only the first ${this.firstChars} characters and you cannot edit it.`;
},
},
};
</script>
<style type="text/css">
.size-too-large-viewer .el-alert {
margin: 3px 0 8px 0;
color: #f56c6c;
background-color: #f9dbdb;
}
/*text viewer box*/
.key-content-string .size-too-large-viewer .el-textarea textarea {
height: calc(100vh - 290px);
}
</style>
View on GitHub (pinned to c149855106)
Solutions
- Read or edit the value through the CLI tab (GET key / SET key ...), which has no size limit
- Raise firstChars in ViewerOverSize.vue data() together with FormatViewer.overSizeBytes if your machine renders larger strings smoothly
- Copy/dump the value out (copy-to-clipboard) and edit it in an external editor, then SET it back
- Split the oversized value into smaller keys at the application level
Example fix
// before (ViewerOverSize.vue)
data() {
return { firstChars: 20000 };
},
// after - raise the cap, and raise FormatViewer.overSizeBytes to match,
// otherwise FormatViewer keeps swapping in the OverSize viewer
// before firstChars is ever consulted
data() {
return { firstChars: 100000 };
}, Defensive patterns
Strategy: validation
Validate before calling
// Check size before choosing a viewer, mirroring FormatViewer.overSize
const MAX_INLINE_BYTES = 2 * 1024 * 1024; // align with FormatViewer.overSizeBytes
function isRenderableInline(content) {
return Buffer.isBuffer(content) && Buffer.byteLength(content) <= MAX_INLINE_BYTES;
}
if (!isRenderableInline(content)) {
openExternalViewer(content); // CLI / file dump instead of the inline editor
} Prevention
- Know the threshold is checked in bytes (Buffer.byteLength), not characters - multi-byte UTF-8 hits it sooner
- Keep large values out of the GUI path; use the CLI tab for big GET/SET
- If you raise firstChars, raise FormatViewer.overSizeBytes too or the swap never happens
When it happens
Trigger: Opening any key whose serialized content exceeds FormatViewer.overSizeBytes: FormatViewer.viewersMap routes 'OverSize' -> ViewerOverSize, contentDisplay() renders content.slice(0, 20000) via bufToString, and alertTitle shows this message with editing disabled.
Common situations: Large cached HTML/JSON blobs, session payloads, serialized objects, or big list members opened in the GUI; users confused why the viewer is read-only and the text ends with '...Show only the first 20000 characters...'.
Related errors
- this.$t('message.group_name_required')
- this.$t('message.group_exists')
- this.$t('message.group_name_required')
- this.$t('message.group_exists')
- Select a correct .proto file
AI-assisted analysis of qishibo/AnotherRedisDesktopManager@c149855106 (2026-08-22).
Data as JSON: /api/errors/f3e2091772d93034.
Report an issue: GitHub.