JetBrains/intellij-community · error · EvaluateException
Internal error. See logs for more details
Error message
Internal error. See logs for more details
What it means
The generic catch-all in NodeDescriptorImpl.updateRepresentationNoNotify: any unexpected RuntimeException from calcRepresentation (the node-label computation) that is not one of the known JDI exceptions is logged (LOG.debug in a modifiable VM, LOG.warn in a read-only one) and rethrown as EvaluateException('internal.debugger.error'). The real root cause is only visible in idea.log.
Source
Thrown at java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/NodeDescriptorImpl.java:91
throw new EvaluateException(JavaDebuggerBundle.message("error.invalid.stackframe"));
}
catch (ObjectCollectedException e) {
throw EvaluateExceptionUtil.OBJECT_WAS_COLLECTED;
}
catch (VMDisconnectedException e) {
throw e;
}
catch (RuntimeException e) {
if (e.getCause() instanceof InterruptedException) {
throw e;
}
if (context != null && context.getVirtualMachineProxy().canBeModified()) { // do not care in read only vms
LOG.debug(e);
}
else {
LOG.warn(e);
}
throw new EvaluateException(JavaDebuggerBundle.message("internal.debugger.error"));
}
}
catch (EvaluateException e) {
setFailed(e);
}
}
protected abstract @NlsContexts.Label String calcRepresentation(EvaluationContextImpl context, DescriptorLabelListener labelListener) throws EvaluateException;
@Override
public void displayAs(NodeDescriptor descriptor) {
if (descriptor instanceof NodeDescriptorImpl that) {
myIsExpanded = that.myIsExpanded;
myIsSelected = that.myIsSelected;
myIsVisible = that.myIsVisible;
myUserData = that.myUserData != null ? new HashMap<>(that.myUserData) : null;
// TODO introduce unified way to handle thisView on GitHub (pinned to be881553f2)
Solutions
- Open idea.log (Help | Show Log in Explorer/Finder) and find the stack trace logged right before this message to identify the real cause
- If a custom Type Renderer is configured for the failing type, disable or fix it (Settings | Debugger | Data Views | Java Type Renderers)
- Disable third-party debugger plugins and retry to isolate the source
- If the log shows an IDE platform stack trace, update IntelliJ to the latest version / report the exception with the log attached
Defensive patterns
Strategy: try-catch
Try / catch
try {
descriptor.updateRepresentationNoNotify(context, listener);
} catch (EvaluateException e) {
if (JavaDebuggerBundle.message("internal.debugger.error").equals(e.getMessage())) {
LOGGER.error("Label computation failed", e.getCause()); // real cause is in idea.log
}
} Prevention
- Keep custom Java Type Renderers minimal and exception-free (they run inside label computation)
- Check idea.log whenever this generic message appears — it never carries the cause itself
- Keep the IDE updated; most internal-error reports here are fixed platform bugs
When it happens
Trigger: Any unclassified runtime failure while rendering a value's label: ClassLoader issues resolving renderer classes, custom type renderer (Type Renderer in data views) throwing, NPEs in JDI mirror access, or bugs in a node descriptor implementation.
Common situations: A user-defined Java Type Renderer with broken code in the debugger 'Data Views | Type Renderers' settings; broken third-party debugger plugin; JVM returning unexpected types (non-HotSpot VMs); IDE bugs after class redefinition.
Related errors
- Invalid local variable name ''{0}''
- Inconsistent debug information
- Internal exception - invalid stackframe
- Invalid field name '{0}'
AI-assisted analysis of JetBrains/intellij-community@be881553f2 (2026-08-14).
Data as JSON: /api/errors/d8e2e647a854ff86.
Report an issue: GitHub.